static my_bool ma_check_fingerprint(char *fp1, unsigned int fp1_len, char *fp2, unsigned int fp2_len) { char hexstr[fp1_len * 2 + 1]; fp1_len= (unsigned int)mysql_hex_string(hexstr, fp1, fp1_len); if (strncasecmp(hexstr, fp2, fp1_len) != 0) return 1; return 0; }
static my_bool ma_check_fingerprint(char *fp1, unsigned int fp1_len, char *fp2, unsigned int fp2_len) { /* SHA1 fingerprint (160 bit) / 8 * 2 + 1 */ char hexstr[41]; fp1_len= (unsigned int)mysql_hex_string(hexstr, fp1, fp1_len); #ifdef _WIN32 if (_strnicmp(hexstr, fp2, fp1_len) != 0) #else if (strncasecmp(hexstr, fp2, fp1_len) != 0) #endif return 1; return 0; }
static int test_utf16_utf32_noboms(MYSQL *mysql) { char *csname[]= {"utf16", "utf16le", "utf32", "utf8"}; CHARSET_INFO *csinfo[sizeof(csname)/sizeof(char*)]; const int UTF8= sizeof(csname)/sizeof(char*) - 1; unsigned char in_string[][8]= {"\xd8\x02\xdc\x60\0", /* utf16(be) */ "\x02\xd8\x60\xdc\0", /* utf16le */ "\x00\x01\x08\x60\0\0\0", /* utf32(be) */ "\xF0\x90\xA1\xA0" }; /* utf8 */ size_t in_oct_len[]= {6, 6, 8, 5}; char buffer[8], as_hex[16]; int i, error; size_t rc, in_len, out_len; for (i= 0; i < sizeof(csname)/sizeof(char*); ++i) { csinfo[i]= mariadb_get_charset_by_name(csname[i]); if (csinfo[i] == NULL) { diag("Could not get cs info for %s", csname[i]); return FAIL; } } for (i= 0; i < UTF8; ++i) { in_len= in_oct_len[i]; out_len= sizeof(buffer); diag("Converting %s->%s", csname[i], csname[UTF8]); rc= mariadb_convert_string(in_string[i], &in_len, csinfo[i], buffer, &out_len, csinfo[UTF8], &error); FAIL_IF(rc == -1, "Conversion failed"); FAIL_IF(rc != in_oct_len[UTF8], "Incorrect number of written bytes"); if (memcmp(buffer, in_string[UTF8], rc) != 0) { mysql_hex_string(as_hex, buffer, rc); diag("Converted string(%s) does not match the expected one", as_hex); return FAIL; } in_len= in_oct_len[UTF8]; out_len= sizeof(buffer); diag("Converting %s->%s", csname[UTF8], csname[i]); rc= mariadb_convert_string(in_string[UTF8], &in_len, csinfo[UTF8], buffer, &out_len, csinfo[i], &error); FAIL_IF(rc==-1, "Conversion failed"); FAIL_IF(rc != in_oct_len[i], "Incorrect number of written bytes"); if (memcmp(buffer, in_string[i], rc) != 0) { mysql_hex_string(as_hex, buffer, rc); diag("Converted string(%s) does not match the expected one", as_hex); return FAIL; } } return OK; }