From d3a23c3eb8c0950d26204568a133207099923494 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Thu, 28 May 2015 16:39:47 +0200 Subject: [PATCH] MINOR: ssl: add a destructor to free allocated SSL ressources Using valgrind or another memory leak tracking tool is easier when the memory internally allocated by OpenSSL is cleanly released at shutdown. --- src/ssl_sock.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/ssl_sock.c b/src/ssl_sock.c index a6717a3c7..e528db2ae 100644 --- a/src/ssl_sock.c +++ b/src/ssl_sock.c @@ -5060,6 +5060,42 @@ static void __ssl_sock_init(void) #endif } +__attribute__((destructor)) +static void __ssl_sock_deinit(void) +{ +#ifndef OPENSSL_NO_DH + if (local_dh_1024) { + DH_free(local_dh_1024); + local_dh_1024 = NULL; + } + + if (local_dh_2048) { + DH_free(local_dh_2048); + local_dh_2048 = NULL; + } + + if (local_dh_4096) { + DH_free(local_dh_4096); + local_dh_4096 = NULL; + } + + if (local_dh_8192) { + DH_free(local_dh_8192); + local_dh_8192 = NULL; + } +#endif + + ERR_remove_state(0); + ERR_free_strings(); + + EVP_cleanup(); + +#if OPENSSL_VERSION_NUMBER >= 0x00907000L + CRYPTO_cleanup_all_ex_data(); +#endif +} + + /* * Local variables: * c-indent-level: 8 -- 2.47.3