From 132f4f476747e686421386e60a945b288355ef7b Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Tue, 26 Apr 2022 16:14:23 +0000 Subject: [PATCH] fix(OpenSSLInitializer): revert unload provider on uninitialize (#3567) --- Crypto/include/Poco/Crypto/OpenSSLInitializer.h | 5 ++--- Crypto/src/OpenSSLInitializer.cpp | 16 ++-------------- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/Crypto/include/Poco/Crypto/OpenSSLInitializer.h b/Crypto/include/Poco/Crypto/OpenSSLInitializer.h index 25e4c477a..4bba5455f 100644 --- a/Crypto/include/Poco/Crypto/OpenSSLInitializer.h +++ b/Crypto/include/Poco/Crypto/OpenSSLInitializer.h @@ -24,7 +24,6 @@ #include #if OPENSSL_VERSION_NUMBER >= 0x30000000L #include -#include #endif #if defined(OPENSSL_FIPS) && OPENSSL_VERSION_NUMBER < 0x010001000L #include @@ -92,8 +91,8 @@ private: #endif #if OPENSSL_VERSION_NUMBER >= 0x30000000L - static std::atomic _defaultProvider; - static std::atomic _legacyProvider; + static OSSL_PROVIDER* _defaultProvider; + static OSSL_PROVIDER* _legacyProvider; #endif }; diff --git a/Crypto/src/OpenSSLInitializer.cpp b/Crypto/src/OpenSSLInitializer.cpp index 4678d2229..1d2c92551 100644 --- a/Crypto/src/OpenSSLInitializer.cpp +++ b/Crypto/src/OpenSSLInitializer.cpp @@ -66,8 +66,8 @@ Poco::FastMutex* OpenSSLInitializer::_mutexes(0); #endif #if OPENSSL_VERSION_NUMBER >= 0x30000000L -std::atomic OpenSSLInitializer::_defaultProvider(0); -std::atomic OpenSSLInitializer::_legacyProvider(0); +OSSL_PROVIDER* OpenSSLInitializer::_defaultProvider(0); +OSSL_PROVIDER* OpenSSLInitializer::_legacyProvider(0); #endif @@ -157,18 +157,6 @@ void OpenSSLInitializer::uninitialize() #endif delete [] _mutexes; #endif - -#if OPENSSL_VERSION_NUMBER >= 0x30000000L - OSSL_PROVIDER* provider = nullptr; - if ((provider = _defaultProvider.exchange(nullptr))) - { - OSSL_PROVIDER_unload(provider); - } - if ((provider = _legacyProvider.exchange(nullptr))) - { - OSSL_PROVIDER_unload(provider); - } -#endif } }