]> 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:11:16 +0000 (13:11 +0200)
(cherry picked from commit ec75a070239892f4835a1d75bb40749dd33fa2fc)

bin/dnssec/dnssec-signzone.c

index a093ad6099b63479a71f9ca3337f2fa5188e321a..96f59a29fae96a776378d1b1fc0c444562bb2aae 100644 (file)
@@ -191,6 +191,20 @@ static isc_boolean_t output_stdout = ISC_FALSE;
 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;
@@ -1485,17 +1499,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;
@@ -1740,7 +1752,6 @@ nsecify(void) {
        name = dns_fixedname_name(&fname);
        dns_fixedname_init(&fnextname);
        nextname = dns_fixedname_name(&fnextname);
-       dns_fixedname_init(&fzonecut);
        zonecut = NULL;
 
        /*
@@ -1802,14 +1813,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);
@@ -2190,7 +2199,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;
 
        /*
@@ -2225,8 +2233,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);
@@ -2252,8 +2259,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);
@@ -2264,8 +2270,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;
@@ -2366,8 +2371,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);
@@ -2392,8 +2396,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);
@@ -2401,8 +2404,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;