From: Aram Sargsyan Date: Wed, 1 Jun 2022 08:51:55 +0000 (+0000) Subject: Don't process DNSSEC-related and ZONEMD records in catz X-Git-Tag: v9.19.2~4^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=73d664313703d2874c3b1a4380afdcd8ba26dc62;p=thirdparty%2Fbind9.git Don't process DNSSEC-related and ZONEMD records in catz When processing a catalog zone update, skip processing records with DNSSEC-related and ZONEMD types, because we are not interested in them in the context of a catalog zone, and processing them will fail and produce an unnecessary warning message. --- diff --git a/lib/dns/catz.c b/lib/dns/catz.c index 6007a1cab1d..c926be424c7 100644 --- a/lib/dns/catz.c +++ b/lib/dns/catz.c @@ -2088,6 +2088,12 @@ cleanup: return (result); } +static bool +catz_rdatatype_is_processable(const dns_rdatatype_t type) { + return (!dns_rdatatype_isdnssec(type) && type != dns_rdatatype_cds && + type != dns_rdatatype_cdnskey && type != dns_rdatatype_zonemd); +} + void dns_catz_update_from_db(dns_db_t *db, dns_catz_zones_t *catzs) { dns_catz_zone_t *oldzone = NULL, *newzone = NULL; @@ -2230,6 +2236,17 @@ dns_catz_update_from_db(dns_db_t *db, dns_catz_zones_t *catzs) { result = dns_rdatasetiter_first(rdsiter); while (result == ISC_R_SUCCESS) { dns_rdatasetiter_current(rdsiter, &rdataset); + + /* + * Skip processing DNSSEC-related and ZONEMD types, + * because we are not interested in them in the context + * of a catalog zone, and processing them will fail + * and produce an unnecessary warning message. + */ + if (!catz_rdatatype_is_processable(rdataset.type)) { + goto next; + } + result = dns_catz_update_process(catzs, newzone, name, &rdataset); if (result != ISC_R_SUCCESS) { @@ -2251,6 +2268,7 @@ dns_catz_update_from_db(dns_db_t *db, dns_catz_zones_t *catzs) { cname, classbuf, typebuf, isc_result_totext(result)); } + next: dns_rdataset_disassociate(&rdataset); result = dns_rdatasetiter_next(rdsiter); }