]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Fix assertion failure in dns_db_findrdataset() for SIG records
authorMark Andrews <marka@isc.org>
Tue, 7 Apr 2026 14:39:57 +0000 (16:39 +0200)
committerOndřej Surý <ondrej@isc.org>
Fri, 17 Apr 2026 14:09:39 +0000 (16:09 +0200)
dns__db_findrdataset() had a REQUIRE() that only accepted
dns_rdatatype_rrsig when the covers parameter was set.  A dynamic
update containing a SIG record (type 24) would trigger this
assertion, crashing named.  Use dns_rdatatype_issig() to accept
both SIG and RRSIG.

lib/dns/db.c

index 0ba7f5aa1f3ec6f5fe48983930435fe03a63829e..01e0f7521968b63b3bda394f188ead9619a79401 100644 (file)
@@ -600,7 +600,7 @@ dns__db_findrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
        REQUIRE(node != NULL);
        REQUIRE(DNS_RDATASET_VALID(rdataset));
        REQUIRE(!dns_rdataset_isassociated(rdataset));
-       REQUIRE(covers == dns_rdatatype_none || type == dns_rdatatype_rrsig);
+       REQUIRE(covers == dns_rdatatype_none || dns_rdatatype_issig(type));
        REQUIRE(type != dns_rdatatype_any);
        REQUIRE(sigrdataset == NULL ||
                (DNS_RDATASET_VALID(sigrdataset) &&