]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Check that primary key names have not changed
authorMark Andrews <marka@isc.org>
Fri, 23 Sep 2022 06:52:44 +0000 (16:52 +1000)
committerMark Andrews <marka@isc.org>
Tue, 27 Sep 2022 12:20:41 +0000 (22:20 +1000)
When looking for changes in a catalog zone member zone we need to
also check if the TSIG key name associated with a primary server
has be added, removed or changed.

(cherry picked from commit 9172bd9b5a0b039cea187b6c7cc2c1314210c5d6)

lib/dns/catz.c

index e46549be5e41d8e45e5501d91a727cbc8fc2b9f5..702b081940a65a8ad23a4520293372384c2e2830 100644 (file)
@@ -322,6 +322,20 @@ dns_catz_entry_cmp(const dns_catz_entry_t *ea, const dns_catz_entry_t *eb) {
                return (false);
        }
 
+       for (size_t i = 0; i < eb->opts.masters.count; i++) {
+               if ((ea->opts.masters.keys[i] == NULL) !=
+                   (eb->opts.masters.keys[i] == NULL)) {
+                       return (false);
+               }
+               if (ea->opts.masters.keys[i] == NULL) {
+                       continue;
+               }
+               if (!dns_name_equal(ea->opts.masters.keys[i],
+                                   eb->opts.masters.keys[i])) {
+                       return (false);
+               }
+       }
+
        /* If one is NULL and the other isn't, the entries don't match */
        if ((ea->opts.allow_query == NULL) != (eb->opts.allow_query == NULL)) {
                return (false);
@@ -350,7 +364,7 @@ dns_catz_entry_cmp(const dns_catz_entry_t *ea, const dns_catz_entry_t *eb) {
                }
        }
 
-       /* xxxwpk TODO compare dscps/keys! */
+       /* xxxwpk TODO compare dscps! */
        return (true);
 }