]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Pull out the saving of the zone cut into a separate function
authorMark Andrews <marka@isc.org>
Wed, 13 Jun 2018 07:23:27 +0000 (17:23 +1000)
committerMichał Kępień <michal@isc.org>
Wed, 13 Jun 2018 11:02:25 +0000 (13:02 +0200)
(cherry picked from commit 0c3ddaafb58c07140c1a0c71bd4d02414e8ec560)

bin/dnssec/dnssec-signzone.c

index 06f0dfeecccdf3627ae5e95f633fbf06d7e59f73..f34cfaa2a1eb1be00fbf32afd0e7046157a694e1 100644 (file)
@@ -197,6 +197,20 @@ static dns_ttl_t maxttl = 0;
 static void
 sign(isc_task_t *task, isc_event_t *event);
 
+/*%
+ * Store a copy of 'name' in 'fzonecut' and return a pointer to that copy.
+ */
+static dns_name_t *
+savezonecut(dns_fixedname_t *fzonecut, dns_name_t *name) {
+       dns_name_t *result;
+
+       dns_fixedname_init(fzonecut);
+       result = dns_fixedname_name(fzonecut);
+       dns_name_copy(name, result, NULL);
+
+       return (result);
+}
+
 static void
 dumpnode(dns_name_t *name, dns_dbnode_t *node) {
        dns_rdataset_t rds;
@@ -1494,17 +1508,15 @@ assignwork(isc_task_t *task, isc_task_t *worker) {
                        if (dns_name_issubdomain(name, gorigin) &&
                            (zonecut == NULL ||
                             !dns_name_issubdomain(name, zonecut))) {
-                               if (is_delegation(gdb, gversion, gorigin, name, node, NULL)) {
-                                       dns_fixedname_init(&fzonecut);
-                                       zonecut = dns_fixedname_name(&fzonecut);
-                                       dns_name_copy(name, zonecut, NULL);
+                               if (is_delegation(gdb, gversion, gorigin,
+                                                 name, node, NULL))
+                               {
+                                       zonecut = savezonecut(&fzonecut, name);
                                        if (!OPTOUT(nsec3flags) ||
                                            secure(name, node))
                                                found = ISC_TRUE;
                                } else if (has_dname(gdb, gversion, node)) {
-                                       dns_fixedname_init(&fzonecut);
-                                       zonecut = dns_fixedname_name(&fzonecut);
-                                       dns_name_copy(name, zonecut, NULL);
+                                       zonecut = savezonecut(&fzonecut, name);
                                        found = ISC_TRUE;
                                } else {
                                        found = ISC_TRUE;
@@ -1749,7 +1761,6 @@ nsecify(void) {
        name = dns_fixedname_name(&fname);
        dns_fixedname_init(&fnextname);
        nextname = dns_fixedname_name(&fnextname);
-       dns_fixedname_init(&fzonecut);
        zonecut = NULL;
 
        /*
@@ -1811,14 +1822,12 @@ nsecify(void) {
                }
 
                if (is_delegation(gdb, gversion, gorigin, name, node, &nsttl)) {
-                       zonecut = dns_fixedname_name(&fzonecut);
-                       dns_name_copy(name, zonecut, NULL);
+                       zonecut = savezonecut(&fzonecut, name);
                        remove_sigs(node, ISC_TRUE, 0);
                        if (generateds)
                                add_ds(name, node, nsttl);
                } else if (has_dname(gdb, gversion, node)) {
-                       zonecut = dns_fixedname_name(&fzonecut);
-                       dns_name_copy(name, zonecut, NULL);
+                       zonecut = savezonecut(&fzonecut, name);
                }
 
                result = dns_dbiterator_next(dbiter);
@@ -2228,7 +2237,6 @@ nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
        name = dns_fixedname_name(&fname);
        dns_fixedname_init(&fnextname);
        nextname = dns_fixedname_name(&fnextname);
-       dns_fixedname_init(&fzonecut);
        zonecut = NULL;
 
        /*
@@ -2263,8 +2271,7 @@ nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
                }
 
                if (has_dname(gdb, gversion, node)) {
-                       zonecut = dns_fixedname_name(&fzonecut);
-                       dns_name_copy(name, zonecut, NULL);
+                       zonecut = savezonecut(&fzonecut, name);
                }
 
                result = dns_dbiterator_next(dbiter);
@@ -2290,8 +2297,7 @@ nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
                        if (is_delegation(gdb, gversion, gorigin,
                                          nextname, nextnode, &nsttl))
                        {
-                               zonecut = dns_fixedname_name(&fzonecut);
-                               dns_name_copy(nextname, zonecut, NULL);
+                               zonecut = savezonecut(&fzonecut, nextname);
                                remove_sigs(nextnode, ISC_TRUE, 0);
                                if (generateds)
                                        add_ds(nextname, nextnode, nsttl);
@@ -2302,8 +2308,7 @@ nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
                                        continue;
                                }
                        } else if (has_dname(gdb, gversion, nextnode)) {
-                               zonecut = dns_fixedname_name(&fzonecut);
-                               dns_name_copy(nextname, zonecut, NULL);
+                               zonecut = savezonecut(&fzonecut, nextname);
                        }
                        dns_db_detachnode(gdb, &nextnode);
                        break;
@@ -2404,8 +2409,7 @@ nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
                }
 
                if (has_dname(gdb, gversion, node)) {
-                       zonecut = dns_fixedname_name(&fzonecut);
-                       dns_name_copy(name, zonecut, NULL);
+                       zonecut = savezonecut(&fzonecut, name);
                }
 
                result = dns_dbiterator_next(dbiter);
@@ -2430,8 +2434,7 @@ nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
                        if (is_delegation(gdb, gversion, gorigin,
                                          nextname, nextnode, NULL))
                        {
-                               zonecut = dns_fixedname_name(&fzonecut);
-                               dns_name_copy(nextname, zonecut, NULL);
+                               zonecut = savezonecut(&fzonecut, nextname);
                                if (OPTOUT(nsec3flags) &&
                                    !secure(nextname, nextnode)) {
                                        dns_db_detachnode(gdb, &nextnode);
@@ -2439,8 +2442,7 @@ nsec3ify(unsigned int hashalg, dns_iterations_t iterations,
                                        continue;
                                }
                        } else if (has_dname(gdb, gversion, nextnode)) {
-                               zonecut = dns_fixedname_name(&fzonecut);
-                               dns_name_copy(nextname, zonecut, NULL);
+                               zonecut = savezonecut(&fzonecut, nextname);
                        }
                        dns_db_detachnode(gdb, &nextnode);
                        break;