]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Defer read of zl->server and zl->reconfig until
authorMark Andrews <marka@isc.org>
Fri, 21 Aug 2020 09:51:59 +0000 (19:51 +1000)
committerMark Andrews <marka@isc.org>
Wed, 9 Sep 2020 03:58:31 +0000 (13:58 +1000)
the reference counter has gone to zero and there is
no longer a possibility of changes in other threads.

bin/named/server.c

index ec66cbcc9e2c521ec99b446bd880e9b02ccfd028..bc6c1e7b3a514f8d2e89f364d6332b57f95d18da 100644 (file)
@@ -9584,8 +9584,6 @@ static isc_result_t
 view_loaded(void *arg) {
        isc_result_t result;
        ns_zoneload_t *zl = (ns_zoneload_t *)arg;
-       named_server_t *server = zl->server;
-       bool reconfig = zl->reconfig;
 
        /*
         * Force zone maintenance.  Do this after loading
@@ -9596,6 +9594,9 @@ view_loaded(void *arg) {
         * know when all views are finished.
         */
        if (isc_refcount_decrement(&zl->refs) == 1) {
+               named_server_t *server = zl->server;
+               bool reconfig = zl->reconfig;
+
                isc_refcount_destroy(&zl->refs);
                isc_mem_put(server->mctx, zl, sizeof(*zl));