From: Mark Andrews Date: Wed, 17 Nov 2004 23:52:31 +0000 (+0000) Subject: 1768. [bug] nsecnoexistnodata() could be called with a non-NSEC X-Git-Tag: v9.2.5rc1~28^2~36 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=4e259c5a2321e994708fb1fe04cd4da30aa3b612;p=thirdparty%2Fbind9.git 1768. [bug] nsecnoexistnodata() could be called with a non-NSEC rdataset. [RT #12907] --- diff --git a/CHANGES b/CHANGES index dcb1e236bac..2f603f0f6b0 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +1768. [bug] nsecnoexistnodata() could be called with a non-NSEC + rdataset. [RT #12907] + 1767. [placeholder] rt13077 1766. [placeholder] rt13062 diff --git a/lib/dns/validator.c b/lib/dns/validator.c index 59d365c194d..ef1dc759209 100644 --- a/lib/dns/validator.c +++ b/lib/dns/validator.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: validator.c,v 1.123 2004/06/11 01:12:38 marka Exp $ */ +/* $Id: validator.c,v 1.124 2004/11/17 23:52:31 marka Exp $ */ #include @@ -497,6 +497,8 @@ nsecnoexistnodata(dns_validator_t *val, dns_name_t* name, dns_name_t *nsecname, REQUIRE(exists != NULL); REQUIRE(data != NULL); + REQUIRE(nsecset != NULL && + nsecset->type == dns_rdatatype_nsec); result = dns_rdataset_first(nsecset); if (result != ISC_R_SUCCESS) { @@ -661,7 +663,7 @@ authvalidated(isc_task_t *task, isc_event_t *event) { if (rdataset->trust == dns_trust_secure) val->seensig = ISC_TRUE; - if (val->nsecset != NULL && + if (rdataset->type == dns_rdatatype_nsec && rdataset->trust == dns_trust_secure && ((val->attributes & VALATTR_NEEDNODATA) != 0 || (val->attributes & VALATTR_NEEDNOQNAME) != 0) &&