]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
unlink before unlock
authorMark Andrews <marka@isc.org>
Thu, 2 Aug 2018 05:01:03 +0000 (15:01 +1000)
committerMark Andrews <marka@isc.org>
Fri, 24 Aug 2018 00:58:30 +0000 (10:58 +1000)
(cherry picked from commit 4742f4ecba886c94fb925c1bab6d14e81295ce82)

lib/isc/pk11.c

index 28a9b9f920512fe0f59498b34d61d92250b7f0e6..9b6f6eedc9d95091fc363f073843d9e809ab1c7e 100644 (file)
@@ -513,6 +513,7 @@ free_session_list(pk11_sessionlist_t *slist) {
        LOCK(&sessionlock);
        while (!ISC_LIST_EMPTY(*slist)) {
                sp = ISC_LIST_HEAD(*slist);
+               ISC_LIST_UNLINK(*slist, sp, link);
                UNLOCK(&sessionlock);
                if (sp->session != CK_INVALID_HANDLE) {
                        rv = pkcs_C_CloseSession(sp->session);
@@ -520,7 +521,6 @@ free_session_list(pk11_sessionlist_t *slist) {
                                ret = DST_R_CRYPTOFAILURE;
                }
                LOCK(&sessionlock);
-               ISC_LIST_UNLINK(*slist, sp, link);
                pk11_mem_put(sp, sizeof(*sp));
        }
        UNLOCK(&sessionlock);