From: Evan Hunt Date: Wed, 30 Dec 2009 03:38:57 +0000 (+0000) Subject: 2826. [bug] NSEC3->NSEC transitions could fail due to a lock not X-Git-Tag: v9.4.3-P1~2^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=687b6322fb189c41c3672226a59461cc5c24c087;p=thirdparty%2Fbind9.git 2826. [bug] NSEC3->NSEC transitions could fail due to a lock not being released. [RT #20740] --- diff --git a/CHANGES b/CHANGES index 0aa93d5a6ee..1c99810845c 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +2826. [bug] NSEC3->NSEC transitions could fail due to a lock not + being released. [RT #20740] + 2825. [bug] Changing the setting of OPTOUT in a NSEC3 chain that was in the process of being created was not properly recorded in the zone. [RT #20786] diff --git a/lib/dns/zone.c b/lib/dns/zone.c index 877fdc89e4b..c87e468e260 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: zone.c,v 1.547 2009/12/30 02:32:13 marka Exp $ */ +/* $Id: zone.c,v 1.548 2009/12/30 03:38:57 each Exp $ */ /*! \file */ @@ -6164,6 +6164,8 @@ zone_nsec3chain(dns_zone_t *zone) { dns_db_detachnode(db, &node); if (rebuild_nsec) { + if (nsec3chain != NULL) + dns_dbiterator_pause(nsec3chain->dbiterator); result = updatesecure(db, version, &zone->origin, zone->minimum, ISC_TRUE, &nsec_diff); @@ -6216,6 +6218,8 @@ zone_nsec3chain(dns_zone_t *zone) { } if (updatensec) { + if (nsec3chain != NULL) + dns_dbiterator_pause(nsec3chain->dbiterator); result = updatesecure(db, version, &zone->origin, zone->minimum, ISC_FALSE, &nsec_diff); if (result != ISC_R_SUCCESS) {