]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2826. [bug] NSEC3->NSEC transitions could fail due to a lock not
authorEvan Hunt <each@isc.org>
Wed, 30 Dec 2009 03:38:57 +0000 (03:38 +0000)
committerEvan Hunt <each@isc.org>
Wed, 30 Dec 2009 03:38:57 +0000 (03:38 +0000)
being released.  [RT #20740]

CHANGES
lib/dns/zone.c

diff --git a/CHANGES b/CHANGES
index 0aa93d5a6ee94bc9f68616e7e7ffd63af412864a..1c99810845cb591516fd341042534ce2c541a073 100644 (file)
--- 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]
index 877fdc89e4b178382f4f10f796046e030d5a1b0e..c87e468e2602115c68245c1d663c970215a5ced9 100644 (file)
@@ -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) {