From: Peter van Dijk Date: Fri, 17 Mar 2023 10:33:28 +0000 (+0100) Subject: enforce val size X-Git-Tag: auth-4.8.0-alpha1~1^2~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b5ee3ef3ca43975f8c5035efd08854c36457c15;p=thirdparty%2Fpdns.git enforce val size --- 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;