]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Skip private records when syncing secure db
authorMatthijs Mekking <matthijs@isc.org>
Fri, 7 Nov 2025 14:56:54 +0000 (15:56 +0100)
committerMatthijs Mekking <matthijs@isc.org>
Mon, 24 Nov 2025 09:21:33 +0000 (10:21 +0100)
When synchronizing the secure database, we skip DNSSEC records that
BIND 9 maintains with inline-signing. We should also skip private
RDATA type records that are used to track the current state of a
zone-signing process.

lib/dns/zone.c

index a46969b3e8e324871cd743f7584dcf80a575c29a..2b70bdc93a731d7477d9dfaa186b38c34e35a0d3 100644 (file)
@@ -16312,6 +16312,17 @@ sync_secure_db(dns_zone_t *seczone, dns_zone_t *raw, dns_db_t *secdb,
        ISC_LIST_FOREACH(diff->tuples, tuple, link) {
                dns_difftuplelist_t *al = &add, *dl = &del;
 
+               /*
+                * Skip private records that BIND maintains with inline-signing.
+                */
+               if (seczone->privatetype != 0 &&
+                   tuple->rdata.type == seczone->privatetype)
+               {
+                       ISC_LIST_UNLINK(diff->tuples, tuple, link);
+                       dns_difftuple_free(&tuple);
+                       continue;
+               }
+
                /*
                 * Skip DNSSEC records that BIND maintains with inline-signing.
                 */