]> 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:20 +0000 (10:58 +1000)
(cherry picked from commit 4742f4ecba886c94fb925c1bab6d14e81295ce82)

lib/isc/pk11.c

index 45075df7db40067f1487622152a5d807889e713f..fd6d7fe04fba649361808bdb80505334a8bc05a1 100644 (file)
@@ -515,6 +515,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);
@@ -522,7 +523,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);