]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth: fix coverity CID 1450843 10186/head
authorKees Monshouwer <mind04@monshouwer.org>
Wed, 17 Mar 2021 22:10:33 +0000 (23:10 +0100)
committermind04 <mind04@monshouwer.org>
Thu, 18 Mar 2021 10:09:11 +0000 (11:09 +0100)
modules/lmdbbackend/lmdbbackend.cc

index 72bd946fde5c65c0f4e039efc2de2facf634fb3c..5362860f9a6ca0817648fa280dfc79ce1f80f5a2 100644 (file)
@@ -793,24 +793,24 @@ bool LMDBBackend::get(DNSZoneRecord& zr)
     try {
       const auto& lrr = d_currentrrset.at(d_currentrrsetpos++);
 
-      if (!lrr.disabled || d_includedisabled) {
+      zr.disabled = lrr.disabled;
+      if (!zr.disabled || d_includedisabled) {
         zr.dr.d_name = compoundOrdername::getQName(key) + d_lookupdomain;
         zr.domain_id = compoundOrdername::getDomainID(key);
         zr.dr.d_type = compoundOrdername::getQType(key).getCode();
         zr.dr.d_ttl = lrr.ttl;
         zr.dr.d_content = deserializeContentZR(zr.dr.d_type, zr.dr.d_name, lrr.content);
         zr.auth = lrr.auth;
-        zr.disabled = lrr.disabled;
       }
 
       if (d_currentrrsetpos >= d_currentrrset.size()) {
-        d_currentrrset.clear();
+        d_currentrrset.clear(); // will invalidate lrr
         if (d_getcursor->next(d_currentKey, d_currentVal) || d_currentKey.get<StringView>().rfind(d_matchkey, 0) != 0) {
           d_getcursor.reset();
         }
       }
 
-      if (lrr.disabled && !d_includedisabled) {
+      if (zr.disabled && !d_includedisabled) {
         continue;
       }
     }