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

index e007187bf9d1c93b6e37a0ee1042504ea6fcf7c2..635c2d3f6248cd82bbc9b67226074d8c67d33705 100644 (file)
@@ -789,7 +789,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);
     }