]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
address lock order inversion
authorMark Andrews <marka@isc.org>
Thu, 12 Dec 2019 06:43:03 +0000 (17:43 +1100)
committerMark Andrews <marka@isc.org>
Thu, 12 Dec 2019 06:43:03 +0000 (17:43 +1100)
lib/isc/netmgr/netmgr.c

index 7618ff09a959863c94ac75de25b267d743f81a36..0fdd215df1d890b8540c7892ed3224485a394d47 100644 (file)
@@ -168,7 +168,6 @@ nm_destroy(isc_nm_t **mgr0) {
 
        isc_refcount_destroy(&mgr->references);
 
-       LOCK(&mgr->lock);
        mgr->magic = 0;
 
        for (size_t i = 0; i < mgr->nworkers; i++) {
@@ -181,6 +180,7 @@ nm_destroy(isc_nm_t **mgr0) {
                isc__nm_enqueue_ievent(&mgr->workers[i], event);
        }
 
+       LOCK(&mgr->lock);
        while (atomic_load(&mgr->workers_running) > 0) {
                WAIT(&mgr->wkstatecond, &mgr->lock);
        }