]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
1619. [bug] Missing ISC_LIST_UNLINK in end_reserved_dispatches().
authorMark Andrews <marka@isc.org>
Tue, 20 Apr 2004 07:10:48 +0000 (07:10 +0000)
committerMark Andrews <marka@isc.org>
Tue, 20 Apr 2004 07:10:48 +0000 (07:10 +0000)
                        [RT# 11118]

CHANGES
bin/named/server.c

diff --git a/CHANGES b/CHANGES
index 1e6c2b6eb007f4754c1e4e9afb4257a08d235e04..fa98865d5b8e666db4f41c00a9178eb02dfcbe33 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+1619.  [bug]           Missing ISC_LIST_UNLINK in end_reserved_dispatches().
+                       [RT# 11118]
+
 1617.  [port]          win32: VC++ 6.0 support.
 
 1616.  [compat]        Ensure that named's version is visible in the core
index 1be7e3cfbd52053ae6bc61024e9a0f66f343a080..2339fe34e009cb08434c8793ac22b8b8932cc7cd 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: server.c,v 1.339.2.27 2004/04/15 05:31:47 marka Exp $ */
+/* $Id: server.c,v 1.339.2.28 2004/04/20 07:10:48 marka Exp $ */
 
 #include <config.h>
 
@@ -2550,15 +2550,17 @@ start_reserved_dispatches(ns_server_t *server) {
 
 static void
 end_reserved_dispatches(ns_server_t *server, isc_boolean_t all) {
-       ns_dispatch_t *dispatch;
+       ns_dispatch_t *dispatch, *nextdispatch;
 
        REQUIRE(NS_SERVER_VALID(server));
 
        for (dispatch = ISC_LIST_HEAD(server->dispatches);
             dispatch != NULL;
-            dispatch = ISC_LIST_NEXT(dispatch, link)) {
+            dispatch = nextdispatch) {
+               nextdispatch = ISC_LIST_NEXT(dispatch, link);
                if (!all && server->dispatchgen == dispatch-> dispatchgen)
                        continue;
+               ISC_LIST_UNLINK(server->dispatches, dispatch, link);
                dns_dispatch_detach(&dispatch->dispatch);
                isc_mem_put(server->mctx, dispatch, sizeof(*dispatch));
        }