Fix missing RRSIG for CNAME with different slabheader order

The cachedb was missing piece of code (already found in zonedb) that
would make lookups in the slabheaders to miss the RRSIGs for CNAME if
the order of CNAME and RRSIG(CNAME) was reversed in the node->data.

(cherry picked from commit 5070c7f5c7)
This commit is contained in:
Ondřej Surý
2024-02-06 14:05:08 +01:00
parent 02d7e7bf47
commit d228dc63c1

View File

@@ -5086,13 +5086,18 @@ cache_find(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
*/
found = header;
if (header->type == dns_rdatatype_cname &&
cname_ok && cnamesig != NULL)
cname_ok)
{
/*
* If we've already got the
* CNAME RRSIG, use it.
*/
foundsig = cnamesig;
if (cnamesig != NULL) {
foundsig = cnamesig;
} else {
sigtype =
RBTDB_RDATATYPE_SIGCNAME;
}
}
} else if (header->type == sigtype) {
/*