]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
enforce val size
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Fri, 17 Mar 2023 10:33:28 +0000 (11:33 +0100)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Fri, 17 Mar 2023 10:33:28 +0000 (11:33 +0100)
ext/lmdb-safe/lmdb-typed.hh

index 189a39a42d6354a34d073dc36650b3307007f1be..4f90e14a13a536c8c3c71fb66110a1b512fb9378 100644 (file)
@@ -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;