From: Mukund Sivaraman Date: Wed, 2 May 2018 06:48:44 +0000 (+0530) Subject: Don't validate non-pending glue when adding to the additional section X-Git-Tag: v9.9.13rc1~6^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6cd4cb3d2a7e5cbb735422fffec86445c80111b1;p=thirdparty%2Fbind9.git Don't validate non-pending glue when adding to the additional section (cherry picked from commit 31bd3147d118106faa62fe90ec39f36c64239e5d) --- diff --git a/bin/named/query.c b/bin/named/query.c index 25ed496a244..cbd81735a0d 100644 --- a/bin/named/query.c +++ b/bin/named/query.c @@ -1524,8 +1524,7 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { have_a = ISC_TRUE; #endif if (additionaltype == dns_rdatasetadditional_fromcache && - (DNS_TRUST_PENDING(rdataset->trust) || - DNS_TRUST_GLUE(rdataset->trust)) && + DNS_TRUST_PENDING(rdataset->trust) && !validate(client, db, fname, rdataset, sigrdataset)) { dns_rdataset_disassociate(rdataset); @@ -1595,8 +1594,7 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { goto addname; #endif if (additionaltype == dns_rdatasetadditional_fromcache && - (DNS_TRUST_PENDING(rdataset->trust) || - DNS_TRUST_GLUE(rdataset->trust)) && + DNS_TRUST_PENDING(rdataset->trust) && !validate(client, db, fname, rdataset, sigrdataset)) { dns_rdataset_disassociate(rdataset); @@ -2063,9 +2061,9 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { */ if (result == ISC_R_SUCCESS && additionaltype == dns_rdatasetadditional_fromcache && - (DNS_TRUST_PENDING(rdataset->trust) || - DNS_TRUST_GLUE(rdataset->trust)) && - !validate(client, db, fname, rdataset, sigrdataset)) { + DNS_TRUST_PENDING(rdataset->trust) && + !validate(client, db, fname, rdataset, sigrdataset)) + { dns_rdataset_disassociate(rdataset); if (dns_rdataset_isassociated(sigrdataset)) dns_rdataset_disassociate(sigrdataset); @@ -2105,9 +2103,9 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { */ if (result == ISC_R_SUCCESS && additionaltype == dns_rdatasetadditional_fromcache && - (DNS_TRUST_PENDING(rdataset->trust) || - DNS_TRUST_GLUE(rdataset->trust)) && - !validate(client, db, fname, rdataset, sigrdataset)) { + DNS_TRUST_PENDING(rdataset->trust) && + !validate(client, db, fname, rdataset, sigrdataset)) + { dns_rdataset_disassociate(rdataset); if (dns_rdataset_isassociated(sigrdataset)) dns_rdataset_disassociate(sigrdataset);