]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Check record length before calling the visitor function 17211/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 26 Mar 2026 12:22:29 +0000 (13:22 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 26 Mar 2026 12:22:29 +0000 (13:22 +0100)
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
pdns/dnsparser.cc

index 32a09b163a65489821411bd8b1b5aae322acbb21..1bd16708a84a48812dbede53e558c936b0d8543e 100644 (file)
@@ -1350,13 +1350,12 @@ bool visitDNSPacket(const std::string_view& packet, const std::function<bool(uin
       uint32_t dnsttl = reader.get32BitInt();
       uint16_t contentLength = reader.get16BitInt();
       uint16_t pos = reader.getPosition();
+      reader.skip(contentLength);
 
       bool done = visitor(section, dnsclass, dnstype, dnsttl, contentLength, &packet.at(pos));
       if (done) {
         return true;
       }
-
-      reader.skip(contentLength);
     }
   }
   catch (...) {