From 8b5ee3ef3ca43975f8c5035efd08854c36457c15 Mon Sep 17 00:00:00 2001 From: Peter van Dijk Date: Fri, 17 Mar 2023 11:33:28 +0100 Subject: [PATCH] enforce val size --- ext/lmdb-safe/lmdb-typed.hh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ext/lmdb-safe/lmdb-typed.hh b/ext/lmdb-safe/lmdb-typed.hh index 189a39a42d..4f90e14a13 100644 --- a/ext/lmdb-safe/lmdb-typed.hh +++ b/ext/lmdb-safe/lmdb-typed.hh @@ -125,6 +125,11 @@ namespace { std::string skey((char*) key.d_mdbval.mv_data, key.d_mdbval.mv_size); std::string sval((char*) val.d_mdbval.mv_data, val.d_mdbval.mv_size); + if (val.d_mdbval.mv_size != 0 && // empty val case, for range queries + val.d_mdbval.mv_size != 4) { // uint32_t case + throw std::runtime_error("got wrong size value in makeCombinedKey"); + } + uint16_t len = htons(skey.size()); memcpy(lenprefix.data(), &len, sizeof(len)); std::string scombined = lenprefix + skey + sval; -- 2.47.2