Blame SOURCES/bind-9.16-CVE-2022-3736.patch

7a7026
From 1b6590eafce064cbf70f5afc2fe4d6f1bfdc3804 Mon Sep 17 00:00:00 2001
7a7026
From: Mark Andrews <marka@isc.org>
7a7026
Date: Thu, 27 Oct 2022 13:22:11 +1100
7a7026
Subject: [PATCH] Move the mapping of SIG and RRSIG to ANY
7a7026
7a7026
dns_db_findext() asserts if RRSIG is passed to it and
7a7026
query_lookup_stale() failed to map RRSIG to ANY to prevent this.  To
7a7026
avoid cases like this in the future, move the mapping of SIG and RRSIG
7a7026
to ANY for qctx->type to qctx_init().
7a7026
7a7026
(cherry picked from commit 56eae064183488bcf7ff08c3edf59f2e1742c1b6)
7a7026
---
7a7026
 lib/ns/query.c | 17 +++++++++--------
7a7026
 1 file changed, 9 insertions(+), 8 deletions(-)
7a7026
7a7026
diff --git a/lib/ns/query.c b/lib/ns/query.c
7a7026
index a450cb7..f66bab4 100644
7a7026
--- a/lib/ns/query.c
7a7026
+++ b/lib/ns/query.c
7a7026
@@ -5103,6 +5103,15 @@ qctx_init(ns_client_t *client, dns_fetchevent_t **eventp, dns_rdatatype_t qtype,
7a7026
 	qctx->result = ISC_R_SUCCESS;
7a7026
 	qctx->findcoveringnsec = qctx->view->synthfromdnssec;
7a7026
 
7a7026
+	/*
7a7026
+	 * If it's an RRSIG or SIG query, we'll iterate the node.
7a7026
+	 */
7a7026
+	if (qctx->qtype == dns_rdatatype_rrsig ||
7a7026
+	    qctx->qtype == dns_rdatatype_sig)
7a7026
+	{
7a7026
+		qctx->type = dns_rdatatype_any;
7a7026
+	}
7a7026
+
7a7026
 	CALL_HOOK_NORETURN(NS_QUERY_QCTX_INITIALIZED, qctx);
7a7026
 }
7a7026
 
7a7026
@@ -5243,14 +5252,6 @@ query_setup(ns_client_t *client, dns_rdatatype_t qtype) {
7a7026
 
7a7026
 	CALL_HOOK(NS_QUERY_SETUP, &qctx);
7a7026
 
7a7026
-	/*
7a7026
-	 * If it's a SIG query, we'll iterate the node.
7a7026
-	 */
7a7026
-	if (qctx.qtype == dns_rdatatype_rrsig ||
7a7026
-	    qctx.qtype == dns_rdatatype_sig) {
7a7026
-		qctx.type = dns_rdatatype_any;
7a7026
-	}
7a7026
-
7a7026
 	/*
7a7026
 	 * Check SERVFAIL cache
7a7026
 	 */
7a7026
-- 
7a7026
2.39.1
7a7026