mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 15:05:23 +00:00
Fix find_coveringnsec in qpcache.c
dns_qp_lookup was returning ISC_R_NOTFOUND rather than DNS_R_PARTIALMATCH when there wasn't a parent with a NSEC record in the cache. This was causing find_coveringnsec to fail rather than returing the covering NSEC.
This commit is contained in:
@@ -1397,7 +1397,13 @@ find_coveringnsec(qpc_search_t *search, const dns_name_t *name,
|
|||||||
*/
|
*/
|
||||||
result = dns_qp_lookup(search->qpdb->nsec, name, DNS_DBNAMESPACE_NSEC,
|
result = dns_qp_lookup(search->qpdb->nsec, name, DNS_DBNAMESPACE_NSEC,
|
||||||
NULL, &iter, NULL, (void **)&node, NULL);
|
NULL, &iter, NULL, (void **)&node, NULL);
|
||||||
if (result != DNS_R_PARTIALMATCH) {
|
/*
|
||||||
|
* When DNS_R_PARTIALMATCH or ISC_R_NOTFOUND is returned from
|
||||||
|
* dns_qp_lookup there is potentially a covering NSEC present
|
||||||
|
* in the cache so we need to search for it. Otherwise we are
|
||||||
|
* done here.
|
||||||
|
*/
|
||||||
|
if (result != DNS_R_PARTIALMATCH && result != ISC_R_NOTFOUND) {
|
||||||
return ISC_R_NOTFOUND;
|
return ISC_R_NOTFOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user