From: Mark Andrews Date: Thu, 27 Oct 2022 02:22:11 +0000 (+1100) Subject: Move the mapping of SIG and RRSIG to ANY X-Git-Tag: v9.16.37~3^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3cd0c32b0a4dc93a1e3955e17ea8efa0804964ae;p=thirdparty%2Fbind9.git Move the mapping of SIG and RRSIG to ANY dns_db_findext() asserts if RRSIG is passed to it and query_lookup_stale() failed to map RRSIG to ANY to prevent this. To avoid cases like this in the future, move the mapping of SIG and RRSIG to ANY for qctx->type to qctx_init(). (cherry picked from commit 56eae064183488bcf7ff08c3edf59f2e1742c1b6) --- diff --git a/lib/ns/query.c b/lib/ns/query.c index 9ca353e795f..348aee8b3f6 100644 --- a/lib/ns/query.c +++ b/lib/ns/query.c @@ -5177,6 +5177,15 @@ qctx_init(ns_client_t *client, dns_fetchevent_t **eventp, dns_rdatatype_t qtype, qctx->result = ISC_R_SUCCESS; qctx->findcoveringnsec = qctx->view->synthfromdnssec; + /* + * If it's an RRSIG or SIG query, we'll iterate the node. + */ + if (qctx->qtype == dns_rdatatype_rrsig || + qctx->qtype == dns_rdatatype_sig) + { + qctx->type = dns_rdatatype_any; + } + CALL_HOOK_NORETURN(NS_QUERY_QCTX_INITIALIZED, qctx); } @@ -5318,15 +5327,6 @@ query_setup(ns_client_t *client, dns_rdatatype_t qtype) { CALL_HOOK(NS_QUERY_SETUP, &qctx); - /* - * If it's a SIG query, we'll iterate the node. - */ - if (qctx.qtype == dns_rdatatype_rrsig || - qctx.qtype == dns_rdatatype_sig) - { - qctx.type = dns_rdatatype_any; - } - /* * Check SERVFAIL cache */