From: Andreas Gustafsson Date: Thu, 19 Jul 2001 17:11:33 +0000 (+0000) Subject: 940. [bug] Double zone locking failure on error path. [RT #1510] X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=85738508ed91d517b3b1e2ba3d8907d7975ab054;p=thirdparty%2Fbind9.git 940. [bug] Double zone locking failure on error path. [RT #1510] --- diff --git a/CHANGES b/CHANGES index 3ded2ddd05e..c0581545414 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,6 @@ + 940. [bug] Double zone locking failure on error path. [RT #1510] + 937. [bug] A race when shutting down a zone could trigger a INSIST() failure. [RT #1034] diff --git a/lib/dns/zone.c b/lib/dns/zone.c index 97b88bcb077..b2c406f2349 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: zone.c,v 1.283.2.15 2001/07/18 18:07:04 gson Exp $ */ +/* $Id: zone.c,v 1.283.2.16 2001/07/19 17:11:33 gson Exp $ */ #include @@ -2254,7 +2254,10 @@ notify_destroy(dns_notify_t *notify, isc_boolean_t locked) { ISC_LIST_UNLINK(notify->zone->notifies, notify, link); if (!locked) UNLOCK_ZONE(notify->zone); - dns_zone_idetach(¬ify->zone); + if (locked) + zone_idetach(¬ify->zone); + else + dns_zone_idetach(¬ify->zone); } if (notify->find != NULL) dns_adb_destroyfind(¬ify->find);