From ebb9c914f217bb1b002aee1940efc263f84bbc75 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Mon, 5 May 2003 07:16:44 +0000 Subject: [PATCH] Change #1466 resulted in ns_lwdmanager_detach() not always setting the pointer to NULL. remove reference after detach --- bin/named/lwresd.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bin/named/lwresd.c b/bin/named/lwresd.c index 753abade78..e8de7365c0 100644 --- a/bin/named/lwresd.c +++ b/bin/named/lwresd.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: lwresd.c,v 1.44 2003/04/17 06:39:33 marka Exp $ */ +/* $Id: lwresd.c,v 1.45 2003/05/05 07:16:44 marka Exp $ */ /* * Main program for the Lightweight Resolver Daemon. @@ -432,6 +432,7 @@ ns_lwdmanager_detach(ns_lwresd_t **lwresdp) { INSIST(VALID_LWRESD(*lwresdp)); lwresd = *lwresdp; + *lwresdp = NULL; LOCK(&lwresd->lock); INSIST(lwresd->refs > 0); @@ -450,7 +451,6 @@ ns_lwdmanager_detach(ns_lwresd_t **lwresdp) { lwresd->magic = 0; isc_mem_put(mctx, lwresd, sizeof(*lwresd)); isc_mem_detach(&mctx); - *lwresdp = NULL; } @@ -821,11 +821,13 @@ ns_lwresd_configure(isc_mem_t *mctx, cfg_obj_t *config) { while (!ISC_LIST_EMPTY(listeners)) { listener = ISC_LIST_HEAD(listeners); ISC_LIST_UNLINK(listeners, listener, link); - listener_shutdown(listener); - ns_lwreslistener_detach(&listener); isc_sockaddr_format(&listener->address, socktext, sizeof(socktext)); + + listener_shutdown(listener); + ns_lwreslistener_detach(&listener); + isc_log_write(ns_g_lctx, ISC_LOGCATEGORY_GENERAL, NS_LOGMODULE_LWRESD, ISC_LOG_NOTICE, "lwres no longer listening on %s", socktext);