]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3979. [bug] Negative trust anchor fetches where not properly
authorMark Andrews <marka@isc.org>
Fri, 17 Oct 2014 23:07:24 +0000 (10:07 +1100)
committerMark Andrews <marka@isc.org>
Fri, 17 Oct 2014 23:07:24 +0000 (10:07 +1100)
                        managed. [RT #37488]

CHANGES
lib/dns/nta.c

diff --git a/CHANGES b/CHANGES
index 7e0ce44a30f629912b76c4fc6859a247d3fd1e94..f38644c1c351ce55644c550b0abc1b3b31e6aa4c 100644 (file)
--- 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]
 
 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]
index 4fe909be5bb5a4b07c9e2e16b8295387fd66fced..414fac1318cb693c40dce669ba1e72f0aad2e3fc 100644 (file)
@@ -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);