]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Clear the LMDB set state when performing a new lookup or list to prevent corruption...
authorRobin Geuze <robing@transip.nl>
Wed, 16 Dec 2020 19:45:37 +0000 (20:45 +0100)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Thu, 14 Jan 2021 10:20:25 +0000 (11:20 +0100)
modules/lmdbbackend/lmdbbackend.cc

index 9f31242eaed22bee3058898d30c269d66c833641..241303d182ad30855d31cb615b17a21e990ee171 100644 (file)
@@ -679,6 +679,11 @@ bool LMDBBackend::list(const DNSName &target, int id, bool include_disabled)
   }
 
   d_lookupdomain = target;
+
+  // Make sure we start with fresh data
+  d_currentrrset.clear();
+  d_currentrrsetpos = 0;
+
   return true;
 }
 
@@ -739,6 +744,10 @@ void LMDBBackend::lookup(const QType &type, const DNSName &qdomain, int zoneId,
   }
 
   d_lookupdomain = hunt;
+
+  // Make sure we start with fresh data
+  d_currentrrset.clear();
+  d_currentrrsetpos = 0;
 }