From: Mark Andrews Date: Wed, 13 Jun 2018 07:23:27 +0000 (+1000) Subject: Pull out the saving of the zone cut into a separate function X-Git-Tag: v9.10.8rc2~12^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ec75a070239892f4835a1d75bb40749dd33fa2fc;p=thirdparty%2Fbind9.git Pull out the saving of the zone cut into a separate function (cherry picked from commit 0c3ddaafb58c07140c1a0c71bd4d02414e8ec560) --- diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c index 06f0dfeeccc..f34cfaa2a1e 100644 --- a/bin/dnssec/dnssec-signzone.c +++ b/bin/dnssec/dnssec-signzone.c @@ -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;