From: Ondřej Surý Date: Fri, 27 Sep 2019 09:37:27 +0000 (+0200) Subject: lib/dns/rdatalist.c: Fix dereference before DbC check X-Git-Tag: v9.15.6~72^2~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5fc7e98d296f2c094b11cfed68becc60a73d1594;p=thirdparty%2Fbind9.git lib/dns/rdatalist.c: Fix dereference before DbC check --- diff --git a/lib/dns/rdatalist.c b/lib/dns/rdatalist.c index 09b840e46b9..ade3274576d 100644 --- a/lib/dns/rdatalist.c +++ b/lib/dns/rdatalist.c @@ -238,14 +238,17 @@ isc_result_t isc__rdatalist_getnoqname(dns_rdataset_t *rdataset, dns_name_t *name, dns_rdataset_t *neg, dns_rdataset_t *negsig) { - dns_rdataclass_t rdclass = rdataset->rdclass; + dns_rdataclass_t rdclass; dns_rdataset_t *tneg = NULL; dns_rdataset_t *tnegsig = NULL; - const dns_name_t *noqname = rdataset->private6; + const dns_name_t *noqname; REQUIRE(rdataset != NULL); REQUIRE((rdataset->attributes & DNS_RDATASETATTR_NOQNAME) != 0); + rdclass = rdataset->rdclass; + noqname = rdataset->private6; + (void)dns_name_dynamic(noqname); /* Sanity Check. */ for (rdataset = ISC_LIST_HEAD(noqname->list); @@ -329,14 +332,17 @@ isc_result_t isc__rdatalist_getclosest(dns_rdataset_t *rdataset, dns_name_t *name, dns_rdataset_t *neg, dns_rdataset_t *negsig) { - dns_rdataclass_t rdclass = rdataset->rdclass; + dns_rdataclass_t rdclass; dns_rdataset_t *tneg = NULL; dns_rdataset_t *tnegsig = NULL; - const dns_name_t *closest = rdataset->private7; + const dns_name_t *closest; REQUIRE(rdataset != NULL); REQUIRE((rdataset->attributes & DNS_RDATASETATTR_CLOSEST) != 0); + rdclass = rdataset->rdclass; + closest = rdataset->private7; + (void)dns_name_dynamic(closest); /* Sanity Check. */ for (rdataset = ISC_LIST_HEAD(closest->list);