Bugfix in StringToHex

pull/1056/head
René Cannaò 9 years ago
parent 61396cbcdb
commit b220ae8c09

@ -52,11 +52,10 @@
} while (rc!=SQLITE_DONE);\
} while (0)
void StringToHex(unsigned char *string, unsigned char *hexstring) {
void StringToHex(unsigned char *string, unsigned char *hexstring, size_t l) {
unsigned char ch;
size_t i, j, l;
size_t i, j;
l = strlen((char *)string);
for (i=0, j=0; i<l; i++, j+=2) {
ch=string[i];
ch = ch >> 4;
@ -66,7 +65,7 @@ void StringToHex(unsigned char *string, unsigned char *hexstring) {
hexstring[j]= 'A' + ch - 10;
}
ch = string[i];
ch = ch | 0x0F;
ch = ch & 0x0F;
if (ch <= 9) {
hexstring[j+1]= '0' + ch;
} else {
@ -102,20 +101,22 @@ char *s_strdup(char *s) {
static char *sha1_pass_hex(char *sha1_pass) { // copied from MySQL_Protocol.cpp
if (sha1_pass==NULL) return NULL;
// previous code is commented. Uncomment all to perform validation
// char *buff=(char *)malloc(SHA_DIGEST_LENGTH*2+2);
// buff[0]='*';
// buff[SHA_DIGEST_LENGTH*2+1]='\0';
char *buff1=(char *)malloc(SHA_DIGEST_LENGTH*2+2);
buff1[0]='*';
buff1[SHA_DIGEST_LENGTH*2+1]='\0';
// int i;
// uint8_t a;
StringToHex((unsigned char *)sha1_pass,(unsigned char *)buff1+1);
// for (i=0;i<SHA_DIGEST_LENGTH;i++) {
// memcpy(&a,sha1_pass+i,1);
// sprintf(buff+1+2*i, "%02X", a);
// }
// assert(strcmp(buff,buff1));
char *buff1=(char *)malloc(SHA_DIGEST_LENGTH*2+2);
buff1[0]='*';
buff1[SHA_DIGEST_LENGTH*2+1]='\0';
StringToHex((unsigned char *)sha1_pass,(unsigned char *)buff1+1,SHA_DIGEST_LENGTH);
// assert(strcmp(buff,buff1)==0);
// free(buff);
return buff1;
}

Loading…
Cancel
Save