From 8fb412590e03dcf9de775dad1eb7acf320b575ed Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Tue, 7 Sep 2010 02:28:17 +0000 Subject: [PATCH] 2953. [bug] Silence spurious "expected covering NSEC3, got an exact match" message when returning a wildcard no data response. [RT #21744] --- CHANGES | 4 ++++ bin/named/query.c | 15 ++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/CHANGES b/CHANGES index debea0f332..6f207d1bae 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +2953. [bug] Silence spurious "expected covering NSEC3, got an + exact match" message when returning a wildcard + no data response. [RT #21744] + 2952. [port] win32: named-checkzone and named-checkconf failed to initialise winsock. [RT #21932] diff --git a/bin/named/query.c b/bin/named/query.c index 8aafb19ece..cd7bfc73a6 100644 --- a/bin/named/query.c +++ b/bin/named/query.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: query.c,v 1.343 2010/07/15 01:17:45 jinmei Exp $ */ +/* $Id: query.c,v 1.344 2010/09/07 02:28:17 marka Exp $ */ /*! \file */ @@ -2799,7 +2799,7 @@ query_addds(ns_client_t *client, dns_db_t *db, dns_dbnode_t *node, static void query_addwildcardproof(ns_client_t *client, dns_db_t *db, dns_dbversion_t *version, dns_name_t *name, - isc_boolean_t ispositive) + isc_boolean_t ispositive, isc_boolean_t nodata) { isc_buffer_t *dbuf, b; dns_name_t *fname; @@ -2987,7 +2987,7 @@ query_addwildcardproof(ns_client_t *client, dns_db_t *db, goto cleanup; query_findclosestnsec3(wname, db, NULL, client, rdataset, - sigrdataset, fname, ISC_FALSE, NULL); + sigrdataset, fname, nodata, NULL); if (!dns_rdataset_isassociated(rdataset)) goto cleanup; query_addrrset(client, &fname, &rdataset, &sigrdataset, @@ -3090,7 +3090,7 @@ query_addnxrrsetnsec(ns_client_t *client, dns_db_t *db, /* XXX */ query_addwildcardproof(client, db, version, client->query.qname, - ISC_TRUE); + ISC_TRUE, ISC_FALSE); /* * We'll need some resources... @@ -4330,7 +4330,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) query_releasename(client, &fname); query_addwildcardproof(client, db, version, client->query.qname, - ISC_FALSE); + ISC_FALSE, ISC_TRUE); } } if (dns_rdataset_isassociated(rdataset)) { @@ -4419,7 +4419,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) &sigrdataset, NULL, DNS_SECTION_AUTHORITY); query_addwildcardproof(client, db, version, - client->query.qname, ISC_FALSE); + client->query.qname, ISC_FALSE, + ISC_FALSE); } /* @@ -4992,7 +4993,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) if (need_wildcardproof && dns_db_issecure(db)) query_addwildcardproof(client, db, version, dns_fixedname_name(&wildcardname), - ISC_TRUE); + ISC_TRUE, ISC_FALSE); cleanup: CTRACE("query_find: cleanup"); /*