From 35f1e4327304b36441ff6a98b0b1335788db362b Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Thu, 9 May 2024 11:35:06 +1000 Subject: [PATCH] Use dns_view_findzone instead of dns_zt_find With weak zone attachments being used for catzs, catzs->view->zonetable may be NULL so we need to account for this which dns_view_findzone does. This is already done in main. --- bin/named/server.c | 6 +++--- lib/dns/catz.c | 19 +++++++------------ 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/bin/named/server.c b/bin/named/server.c index 0e37e69c81..f6549ab436 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -2704,7 +2704,7 @@ catz_addmodzone_taskaction(isc_task_t *task, isc_event_t *event0) { goto cleanup; } - result = dns_zt_find(ev->view->zonetable, name, 0, NULL, &zone); + result = dns_view_findzone(ev->view, name, &zone); if (ev->mod) { dns_catz_zone_t *parentcatz; @@ -2899,8 +2899,8 @@ catz_delzone_taskaction(isc_task_t *task, isc_event_t *event0) { dns_name_format(dns_catz_entry_getname(ev->entry), cname, DNS_NAME_FORMATSIZE); - result = dns_zt_find(ev->view->zonetable, - dns_catz_entry_getname(ev->entry), 0, NULL, &zone); + result = dns_view_findzone(ev->view, dns_catz_entry_getname(ev->entry), + &zone); if (result != ISC_R_SUCCESS) { isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL, NAMED_LOGMODULE_SERVER, ISC_LOG_WARNING, diff --git a/lib/dns/catz.c b/lib/dns/catz.c index 616d598e30..613805221f 100644 --- a/lib/dns/catz.c +++ b/lib/dns/catz.c @@ -525,7 +525,7 @@ dns__catz_zones_merge(dns_catz_zone_t *catz, dns_catz_zone_t *newcatz) { result = delcur ? isc_ht_iter_delcurrent_next(iter1) : isc_ht_iter_next(iter1)) { - isc_result_t zt_find_result; + isc_result_t find_result; dns_catz_zone_t *parentcatz = NULL; dns_catz_entry_t *nentry = NULL; dns_catz_entry_t *oentry = NULL; @@ -558,10 +558,10 @@ dns__catz_zones_merge(dns_catz_zone_t *catz, dns_catz_zone_t *newcatz) { &catz->zoneoptions, &nentry->opts); /* Try to find the zone in the view */ - zt_find_result = dns_zt_find(catz->catzs->view->zonetable, - dns_catz_entry_getname(nentry), 0, - NULL, &zone); - if (zt_find_result == ISC_R_SUCCESS) { + find_result = dns_view_findzone(catz->catzs->view, + dns_catz_entry_getname(nentry), + &zone); + if (find_result == ISC_R_SUCCESS) { dns_catz_coo_t *coo = NULL; char pczname[DNS_NAME_FORMATSIZE]; bool parentcatz_locked = false; @@ -606,10 +606,6 @@ dns__catz_zones_merge(dns_catz_zone_t *catz, dns_catz_zone_t *newcatz) { UNLOCK(&parentcatz->lock); LOCK(&catz->lock); } - } - if (zt_find_result == ISC_R_SUCCESS || - zt_find_result == DNS_R_PARTIALMATCH) - { dns_zone_detach(&zone); } @@ -617,8 +613,7 @@ dns__catz_zones_merge(dns_catz_zone_t *catz, dns_catz_zone_t *newcatz) { result = isc_ht_find(catz->entries, key, (uint32_t)keysize, (void **)&oentry); if (result != ISC_R_SUCCESS) { - if (zt_find_result == ISC_R_SUCCESS && - parentcatz == catz) + if (find_result == ISC_R_SUCCESS && parentcatz == catz) { /* * This means that the zone's unique label @@ -645,7 +640,7 @@ dns__catz_zones_merge(dns_catz_zone_t *catz, dns_catz_zone_t *newcatz) { continue; } - if (zt_find_result != ISC_R_SUCCESS) { + if (find_result != ISC_R_SUCCESS) { isc_log_write(dns_lctx, DNS_LOGCATEGORY_GENERAL, DNS_LOGMODULE_MASTER, ISC_LOG_DEBUG(3), "catz: zone '%s' was expected to exist "