db_lmdb: guard against non NUL terminated keys
This commit is contained in:
parent
fe3f6a3e6b
commit
402dd2078c
|
@ -163,7 +163,15 @@ int BlockchainLMDB::compare_string(const MDB_val *a, const MDB_val *b)
|
|||
{
|
||||
const char *va = (const char*) a->mv_data;
|
||||
const char *vb = (const char*) b->mv_data;
|
||||
return strcmp(va, vb);
|
||||
const size_t sz = std::min(a->mv_size, b->mv_size);
|
||||
int ret = strncmp(va, vb, sz);
|
||||
if (ret)
|
||||
return ret;
|
||||
if (a->mv_size < b->mv_size)
|
||||
return -1;
|
||||
if (a->mv_size > b->mv_size)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue