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.9.13rc2~10^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e4e19c2adb966d0909f6f1d7be487affceae524;p=thirdparty%2Fbind9.git Pull out the saving of the zone cut into a separate function (cherry picked from commit ec75a070239892f4835a1d75bb40749dd33fa2fc) --- diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c index a093ad6099b..96f59a29fae 100644 --- a/bin/dnssec/dnssec-signzone.c +++ b/bin/dnssec/dnssec-signzone.c @@ -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;