From: Mark Andrews Date: Fri, 2 May 2008 04:42:32 +0000 (+0000) Subject: 2366. [bug] Adb shutdown race. [RT #18021] X-Git-Tag: v9.5.0rc1~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4d5d79c2bfdd2d37ab054fd1b487140f1d029d5e;p=thirdparty%2Fbind9.git 2366. [bug] Adb shutdown race. [RT #18021] --- diff --git a/CHANGES b/CHANGES index 2b63e74d8f4..4304c53e54a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,5 @@ +2366. [bug] Adb shutdown race. [RT #18021] + 2365. [bug] Fix a bug that caused dns_acl_isany() to return spurious results. [RT #18000] diff --git a/lib/dns/adb.c b/lib/dns/adb.c index e4b117ff28b..0f9390d0e28 100644 --- a/lib/dns/adb.c +++ b/lib/dns/adb.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: adb.c,v 1.233.36.6 2008/05/01 18:32:31 jinmei Exp $ */ +/* $Id: adb.c,v 1.233.36.7 2008/05/02 04:42:32 marka Exp $ */ /*! \file * @@ -1234,7 +1234,7 @@ dec_entry_refcnt(dns_adb_t *adb, dns_adbentry_t *entry, isc_boolean_t lock) { free_adbentry(adb, &entry); if (result) - result =dec_adb_irefcnt(adb); + result = dec_adb_irefcnt(adb); return (result); } @@ -1772,6 +1772,8 @@ shutdown_task(isc_task_t *task, isc_event_t *ev) { INSIST(DNS_ADB_VALID(adb)); isc_event_free(&ev); + LOCK(&adb->lock); + UNLOCK(&adb->lock); destroy(adb); }