]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth, check return value of getCatalogMembers()
authorKees Monshouwer <mind04@monshouwer.org>
Tue, 28 Jan 2025 17:33:20 +0000 (18:33 +0100)
committermind04 <mind04@monshouwer.org>
Tue, 28 Jan 2025 17:33:20 +0000 (18:33 +0100)
pdns/tcpreceiver.cc

index c4696a8f72ccd0d93e34ea9dca1ad8cfdc2cfc28..d8cb2cad9702de204376db45e3cbf178e145f167 100644 (file)
@@ -795,7 +795,12 @@ int TCPNameserver::doAXFR(const DNSName &target, std::unique_ptr<DNSPacket>& q,
     zrrs.emplace_back(CatalogInfo::getCatalogVersionRecord(target));
 
     vector<CatalogInfo> members;
-    sd.db->getCatalogMembers(target, members, CatalogInfo::CatalogType::Producer);
+    if (!sd.db->getCatalogMembers(target, members, CatalogInfo::CatalogType::Producer)) {
+      g_log << Logger::Error << logPrefix << "getting catalog members failed, aborting AXFR" << endl;
+      outpacket->setRcode(RCode::ServFail);
+      sendPacket(outpacket, outsock);
+      return 0;
+    }
     for (const auto& ci : members) {
       ci.toDNSZoneRecords(target, zrrs);
     }