1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2024-12-24 17:19:52 +03:00

Encrypt: improve FreeOpenSSLThreadState() and FreeCryptLibrary(), in order to clean up the library correctly

https://wiki.openssl.org/index.php/Library_Initialization#Cleanup
This commit is contained in:
Davide Beatrici 2018-04-12 00:12:05 +02:00
parent 1e8cf1dc5d
commit 2da755135a

View File

@ -3643,9 +3643,14 @@ void Rand(void *buf, UINT size)
// Delete a thread-specific information that OpenSSL has holded
void FreeOpenSSLThreadState()
{
CRYPTO_cleanup_all_ex_data();
ERR_remove_state(0);
}
#if OPENSSL_VERSION_NUMBER < 0x10100000L
#define SSL_COMP_free_compression_methods() (sk_free(SSL_COMP_get_compression_methods()))
#endif
// Release the Crypt library
void FreeCryptLibrary()
{
@ -3655,6 +3660,17 @@ void FreeCryptLibrary()
openssl_lock = NULL;
// RAND_Free_For_SoftEther();
OpenSSL_FreeLock();
FIPS_mode_set(0);
ENGINE_cleanup();
CONF_modules_unload(1);
EVP_cleanup();
FreeOpenSSLThreadState();
ERR_free_strings();
SSL_COMP_free_compression_methods();
}
// Initialize the Crypt library