aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/init.c
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2016-03-02 16:52:43 +0000
committerMatt Caswell <matt@openssl.org>2016-03-02 17:23:42 +0000
commited49f43a0390217e1c2df0054fb7352523be9a58 (patch)
tree2110beb644b88a3cc3ce80c4495e59ef9189e535 /crypto/init.c
parent224905f8aaeac7fd81a49dc160a843c5fff60e6e (diff)
downloadopenssl-ed49f43a0390217e1c2df0054fb7352523be9a58.tar.gz
Ensure Async is deinited properly
The global thread local keys were not being deinited properly in async. Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'crypto/init.c')
-rw-r--r--crypto/init.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/crypto/init.c b/crypto/init.c
index cbe07df2a2..613606ebdc 100644
--- a/crypto/init.c
+++ b/crypto/init.c
@@ -580,6 +580,16 @@ void OPENSSL_cleanup(void)
COMP_zlib_cleanup();
}
+#ifndef OPENSSL_NO_ASYNC
+ if (async_inited) {
+# ifdef OPENSSL_INIT_DEBUG
+ fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
+ "async_deinit()\n");
+# endif
+ async_deinit();
+ }
+#endif
+
#ifndef OPENSSL_NO_ENGINE
if (engine_inited) {
# ifdef OPENSSL_INIT_DEBUG