From: Matt Caswell Date: Thu, 18 Feb 2016 12:24:09 +0000 (+0000) Subject: Fix windows thread stop code X-Git-Tag: OpenSSL_1_1_0-pre4~622 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=6bc7bad011d98e38039105dc2624426917c0e587 Fix windows thread stop code The windows thread stop code was erroneously not just deleting the thread local variable on thread stop, but also deleting the thread local *key* (thus removing thread local data for *all* threads in one go!). Reviewed-by: Rich Salz --- diff --git a/crypto/init.c b/crypto/init.c index 8775b82a22..cbe07df2a2 100644 --- a/crypto/init.c +++ b/crypto/init.c @@ -506,7 +506,6 @@ static void ossl_init_thread_stop(struct thread_local_inits_st *locals) } OPENSSL_free(locals); - ossl_init_thread_stop_cleanup(); } void OPENSSL_thread_stop(void) @@ -599,6 +598,8 @@ void OPENSSL_cleanup(void) ERR_free_strings(); } + ossl_init_thread_stop_cleanup(); + #ifdef OPENSSL_INIT_DEBUG fprintf(stderr, "OPENSSL_INIT: OPENSSL_INIT_library_stop: " "CRYPTO_cleanup_all_ex_data()\n");