From 87b3ced5fefffae9627ec23f7f509be6d79c39e7 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) Conflict: NA Reference: https://gitlab.isc.org/isc-projects/bind9/-/commit/87b3ced5fefffae9627ec23f7f509be6d79c39e7 --- lib/dns/catz.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/dns/catz.c b/lib/dns/catz.c index a749ffa9d4..e46549be5e 100644 --- a/lib/dns/catz.c +++ b/lib/dns/catz.c @@ -1949,9 +1949,6 @@ dns_catz_update_from_db(dns_db_t *db, dns_catz_zones_t *catzs) { } next: dns_rdataset_disassociate(&rdataset); - if (result != ISC_R_SUCCESS) { - break; - } result = dns_rdatasetiter_next(rdsiter); } -- 2.23.0