From: Colin Vidal Date: Fri, 16 Jan 2026 11:14:58 +0000 (+0100) Subject: resolver: remove `qminrrset`, `qminsigrrset` from fctx X-Git-Tag: v9.21.19~30^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fd526c0ad0e3251035a25677511bd0daa733173f;p=thirdparty%2Fbind9.git resolver: remove `qminrrset`, `qminsigrrset` from fctx Two rdataset property `qminrrset` and `qminsigrrset` are removed from the fetch context. They only are used as temporary storage for the query result of the qmin query, and are immediately detached from `resume_qmin` once the query is over. As an alternative, use `resp_rdataset` and `resp_sigrdataset` instead; those are not needed for storing the response data until after qmin_resume() is over. --- diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index dbc3a3bb8df..92e18c223d2 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -398,8 +398,6 @@ struct fetchctx { dns_name_t *qminname; dns_rdatatype_t qmintype; dns_fetch_t *qminfetch; - dns_rdataset_t qminrrset; - dns_rdataset_t qminsigrrset; dns_fixedname_t qmindcfname; dns_name_t *qmindcname; dns_fixedname_t fwdfname; @@ -4284,8 +4282,8 @@ fctx_try(fetchctx_t *fctx, bool retrying) { &fctx->nameservers, NULL, NULL, 0, options | DNS_FETCHOPT_QMINFETCH, 0, fctx->qc, fctx->gqc, fctx, fctx->loop, resume_qmin, fctx, - &fctx->edectx, &fctx->qminrrset, &fctx->qminsigrrset, - &fctx->qminfetch); + &fctx->edectx, &fctx->resp_rdataset, + &fctx->resp_sigrdataset, &fctx->qminfetch); if (result != ISC_R_SUCCESS) { fetchctx_unref(fctx); goto done; @@ -4806,8 +4804,6 @@ fctx__create(dns_resolver_t *res, isc_loop_t *loop, const dns_name_t *name, .edns = ISC_LIST_INITIALIZER, .validators = ISC_LIST_INITIALIZER, .nameservers = DNS_RDATASET_INIT, - .qminrrset = DNS_RDATASET_INIT, - .qminsigrrset = DNS_RDATASET_INIT, .nsrrset = DNS_RDATASET_INIT, .resp_result = DNS_R_SERVFAIL, .resp_rdataset = DNS_RDATASET_INIT,