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)
}
next:
dns_rdataset_disassociate(&rdataset);
- if (result != ISC_R_SUCCESS) {
- break;
- }
result = dns_rdatasetiter_next(rdsiter);
}