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 *va = (const char*) a->mv_data;
|
||||||
const char *vb = (const char*) b->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
Block a user