aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnderson Toshiyuki Sasaki <ansasaki@redhat.com>2018-11-13 11:35:28 +0100
committerAndreas Schneider <asn@cryptomilk.org>2018-11-30 18:26:55 +0100
commit41b0d263d6e57276cc3e2a2457d8ae48e1f56301 (patch)
tree0ffdec63243332ca183cf3f597597f4fbb03ac81
parenta08a97f9c7800fa64375797c5415a77a7b1cd0e8 (diff)
downloadlibssh-41b0d263d6e57276cc3e2a2457d8ae48e1f56301.tar.gz
libssh-41b0d263d6e57276cc3e2a2457d8ae48e1f56301.tar.xz
libssh-41b0d263d6e57276cc3e2a2457d8ae48e1f56301.zip
libcrypto: Fix access violation in ssh_init()
This fixes an access violation when ssh_init() was called after ssh_finalize() in Windows when using OpenSSL 1.0.2 and libssh statically linked. Fixes T120 Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r--src/threads/libcrypto.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/threads/libcrypto.c b/src/threads/libcrypto.c
index 156e5041..5786948b 100644
--- a/src/threads/libcrypto.c
+++ b/src/threads/libcrypto.c
@@ -116,6 +116,14 @@ void crypto_thread_finalize(void)
return;
}
+#ifdef HAVE_OPENSSL_CRYPTO_THREADID_SET_CALLBACK
+ CRYPTO_THREADID_set_callback(NULL);
+#else
+ CRYPTO_set_id_callback(NULL);
+#endif
+
+ CRYPTO_set_locking_callback(NULL);
+
for (i = 0; i < n; ++i) {
user_callbacks->mutex_destroy(&libcrypto_mutexes[i]);
}