From: Mark Andrews Date: Thu, 2 Aug 2018 05:01:03 +0000 (+1000) Subject: unlink before unlock X-Git-Tag: v9.11.5rc1~32^2~1 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=58e33fcdb4fa5d17403883ce1980ae07ae14a030;p=thirdparty%2Fbind9.git unlink before unlock (cherry picked from commit 4742f4ecba886c94fb925c1bab6d14e81295ce82) --- diff --git a/lib/isc/pk11.c b/lib/isc/pk11.c index 28a9b9f9205..9b6f6eedc9d 100644 --- a/lib/isc/pk11.c +++ b/lib/isc/pk11.c @@ -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);