]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Be more careful when looking into the domains table.
authorMiod Vallat <miod.vallat@powerdns.com>
Wed, 30 Jul 2025 07:07:49 +0000 (09:07 +0200)
committerMiod Vallat <miod.vallat@powerdns.com>
Wed, 30 Jul 2025 07:10:53 +0000 (09:10 +0200)
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
modules/lmdbbackend/lmdbbackend.cc

index d1e5e162c9bf649c87f226eb5808c64032d39a5c..dc0af2818b92b410d11ce625338160f9c53e8b7d 100644 (file)
@@ -1687,7 +1687,9 @@ bool LMDBBackend::deleteDomain(const ZoneName& domain)
     auto txn = d_tdomains->getROTransaction();
 
     DomainInfo di;
-    idvec.push_back(txn.get<0>(domain, di));
+    if (auto id = txn.get<0>(domain, di); id != 0) {
+      idvec.push_back(id);
+    }
   }
   else {
     // this transaction used to be RO.
@@ -2036,6 +2038,9 @@ int LMDBBackend::genChangeDomain(const ZoneName& domain, const std::function<voi
   DomainInfo di;
 
   auto id = txn.get<0>(domain, di);
+  if (id == 0) {
+    return false;
+  }
   func(di);
   txn.put(di, id);