From: Aram Sargsyan Date: Thu, 24 Mar 2022 21:38:08 +0000 (+0000) Subject: Do not cancel processing record datasets in catalog zone after an error X-Git-Tag: v9.19.1~74^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0b2d5490cd8b17a01852fcd9e0a0e0c4b9c93ab6;p=thirdparty%2Fbind9.git Do not cancel processing record datasets in catalog zone after an error When there are multiple record datasets in a database node of a catalog zone, and BIND encounters a soft error during processing of a dataset, it breaks from the loop and doesn't process the other datasets in the node. There are cases when this is not desired. For example, the catalog zones draft version 5 states that there must be a TXT RRset named `version.$CATZ` with exactly one RR, but it doesn't set a limitation on possible non-TXT RRsets named `version.$CATZ` existing alongside with the TXT one. In case when one exists, we will get a processing error and will not continue the loop to process the TXT RRset coming next. Remove the "break" statement to continue processing all record datasets. --- diff --git a/lib/dns/catz.c b/lib/dns/catz.c index 20639e22568..ab3d3f14b3b 100644 --- a/lib/dns/catz.c +++ b/lib/dns/catz.c @@ -1976,9 +1976,6 @@ dns_catz_update_from_db(dns_db_t *db, dns_catz_zones_t *catzs) { isc_result_totext(result)); } dns_rdataset_disassociate(&rdataset); - if (result != ISC_R_SUCCESS) { - break; - } result = dns_rdatasetiter_next(rdsiter); }