From 581d7bece0ef79639b52269f1db6c5c2f8e41bee Mon Sep 17 00:00:00 2001 From: Aram Sargsyan Date: Thu, 24 Mar 2022 21:38:08 +0000 Subject: [PATCH] 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. (cherry picked from commit 0b2d5490cd8b17a01852fcd9e0a0e0c4b9c93ab6) --- lib/dns/catz.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/dns/catz.c b/lib/dns/catz.c index 0ec243312c..fa17fd7f60 100644 --- a/lib/dns/catz.c +++ b/lib/dns/catz.c @@ -1988,9 +1988,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); }