From: Evan Hunt Date: Wed, 22 May 2024 20:02:16 +0000 (-0700) Subject: attach query counter to NS fetches X-Git-Tag: v9.21.0~7^2~7 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=d3b7e92783754e9a4ce93046fadcb96c5439a0d7;p=thirdparty%2Fbind9.git attach query counter to NS fetches there were cases in resolver.c when queries for NS records were started without passing a pointer to the parent fetch's query counter; as a result, the max-recursion-queries quota for those queries started counting from zero, instead of sharing the limit for the parent fetch, making the quota ineffective in some cases. --- diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index a2fd672d795..ee85b1e0170 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -7128,7 +7128,7 @@ resume_dslookup(void *arg) { fetchctx_ref(fctx); result = dns_resolver_createfetch( res, fctx->nsname, dns_rdatatype_ns, domain, nsrdataset, - NULL, NULL, 0, fctx->options, 0, NULL, loop, + NULL, NULL, 0, fctx->options, 0, fctx->qc, loop, resume_dslookup, fctx, &fctx->nsrrset, NULL, &fctx->nsfetch); if (result != ISC_R_SUCCESS) { @@ -9556,8 +9556,8 @@ rctx_chaseds(respctx_t *rctx, dns_message_t *message, fetchctx_ref(fctx); result = dns_resolver_createfetch( fctx->res, fctx->nsname, dns_rdatatype_ns, NULL, NULL, NULL, - NULL, 0, fctx->options, 0, NULL, fctx->loop, resume_dslookup, - fctx, &fctx->nsrrset, NULL, &fctx->nsfetch); + NULL, 0, fctx->options, 0, fctx->qc, fctx->loop, + resume_dslookup, fctx, &fctx->nsrrset, NULL, &fctx->nsfetch); if (result != ISC_R_SUCCESS) { if (result == DNS_R_DUPLICATE) { result = DNS_R_SERVFAIL;