]> 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:36:53 +0000 (10:36 +1000)
lib/isc/pk11.c

index cfc5e52074eafdd4596fc731c0cbc31c4e4702ad..f3835b66419ab5b7d61d140b366180df4cb319b9 100644 (file)
@@ -401,6 +401,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);
@@ -408,7 +409,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);