From fb1c018eccd390595fc2806580064a2db70fc99f Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Mon, 22 Jun 2009 03:53:05 +0000 Subject: [PATCH] 2589. [bug] dns_db_unregister() failed to clear '*dbimp'. [RT #19626] --- CHANGES | 3 +++ lib/dns/db.c | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index df04821979..8628dbc1db 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ 2613. [bug] Option argument validation was missing for dnssec-dsfromkey. [RT #19828] +2589. [bug] dns_db_unregister() failed to clear '*dbimp'. + [RT #19626] + 2581. [contrib] dlz/mysql set MYSQL_OPT_RECONNECT option on connection. Requires MySQL 5.0.19 or later. [RT #19084] diff --git a/lib/dns/db.c b/lib/dns/db.c index a4c2864170..d58d74bcd8 100644 --- a/lib/dns/db.c +++ b/lib/dns/db.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: db.c,v 1.88 2008/09/24 02:46:22 marka Exp $ */ +/* $Id: db.c,v 1.88.50.1 2009/06/22 03:53:05 marka Exp $ */ /*! \file */ @@ -854,12 +854,14 @@ dns_db_unregister(dns_dbimplementation_t **dbimp) { RUNTIME_CHECK(isc_once_do(&once, initialize) == ISC_R_SUCCESS); imp = *dbimp; + *dbimp = NULL; RWLOCK(&implock, isc_rwlocktype_write); ISC_LIST_UNLINK(implementations, imp, link); mctx = imp->mctx; isc_mem_put(mctx, imp, sizeof(dns_dbimplementation_t)); isc_mem_detach(&mctx); RWUNLOCK(&implock, isc_rwlocktype_write); + ENSURE(*dbimp == NULL); } isc_result_t