From a56f70c340d4e5a88ba0800ad4115e53c5495e88 Mon Sep 17 00:00:00 2001 From: levlam Date: Sun, 2 Sep 2018 15:44:19 +0300 Subject: [PATCH] Safer init_openssl_threads. GitOrigin-RevId: ecb7a2dbcf48aae55e611e7f95d0a1f0c4a8413d --- tdutils/td/utils/crypto.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tdutils/td/utils/crypto.cpp b/tdutils/td/utils/crypto.cpp index edad176a..d7fe1815 100644 --- a/tdutils/td/utils/crypto.cpp +++ b/tdutils/td/utils/crypto.cpp @@ -32,6 +32,7 @@ #include #include +#include #include namespace td { @@ -611,6 +612,8 @@ void openssl_locking_function(int mode, int n, const char *file, int line) { void init_openssl_threads() { #if OPENSSL_VERSION_NUMBER < 0x10100000L + static std::mutex init_mutex; + std::lock_guard lock(init_mutex); if (CRYPTO_get_locking_callback() == nullptr) { #if OPENSSL_VERSION_NUMBER >= 0x10000000L CRYPTO_THREADID_set_callback(openssl_threadid_callback);