From: Mark Andrews Date: Fri, 17 Oct 2014 23:07:24 +0000 (+1100) Subject: 3979. [bug] Negative trust anchor fetches where not properly X-Git-Tag: v9.11.0a1~1351 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=48f97c23b7d59c925fc3f4280972e50b8ef67c35;p=thirdparty%2Fbind9.git 3979. [bug] Negative trust anchor fetches where not properly managed. [RT #37488] --- diff --git a/CHANGES b/CHANGES index 7e0ce44a30f..f38644c1c35 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +3979. [bug] Negative trust anchor fetches where not properly + managed. [RT #37488] + 3978. [test] Added a unit test for Diffie-Hellman key computation, completing change #3974. [RT #37477] @@ -23,7 +26,7 @@ 3971. [bug] Reduce the cascasding failures due to a bad $TTL line in named-checkconf / named-checkzone. [RT #37138] -3970. [contrib] Fixed a use after free bug in the SDB LDAP driver. +3970. [contrib] Fixed a use after free bug in the SDB LDAP driver. [RT #37237] 3969. [test] Added 'delv' system test. [RT #36901] @@ -187,7 +190,7 @@ 3922. [bug] When resigning, dnssec-signzone was removing all signatures from delegation nodes. It now - retains DS and (if applicable) NSEC signatures. + retains DS and (if applicable) NSEC signatures. [RT #36946] 3921. [bug] AD was inappropriately set on RPZ responses. [RT #36833] diff --git a/lib/dns/nta.c b/lib/dns/nta.c index 4fe909be5bb..414fac1318c 100644 --- a/lib/dns/nta.c +++ b/lib/dns/nta.c @@ -215,7 +215,9 @@ fetch_done(isc_task_t *task, isc_event_t *event) { dns_rdataset_disassociate(&nta->rdataset); if (dns_rdataset_isassociated(&nta->sigrdataset)) dns_rdataset_disassociate(&nta->sigrdataset); - dns_resolver_destroyfetch(&nta->fetch); + if (nta->fetch == devent->fetch) + nta->fetch = NULL; + dns_resolver_destroyfetch(&devent->fetch); if (devent->node != NULL) dns_db_detachnode(devent->db, &devent->node); @@ -256,7 +258,7 @@ checkbogus(isc_task_t *task, isc_event_t *event) { if (nta->fetch != NULL) { dns_resolver_cancelfetch(nta->fetch); - dns_resolver_destroyfetch(&nta->fetch); + nta->fetch = NULL; } if (dns_rdataset_isassociated(&nta->rdataset)) dns_rdataset_disassociate(&nta->rdataset);