diff --git a/pdns/tcpreceiver.cc b/pdns/tcpreceiver.cc index c4696a8f72cc..d8cb2cad9702 100644 --- a/pdns/tcpreceiver.cc +++ b/pdns/tcpreceiver.cc @@ -795,7 +795,12 @@ int TCPNameserver::doAXFR(const DNSName &target, std::unique_ptr& q, zrrs.emplace_back(CatalogInfo::getCatalogVersionRecord(target)); vector 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); }