From: Remi Gacogne Date: Thu, 28 May 2015 14:39:47 +0000 (+0200) Subject: MINOR: ssl: add a destructor to free allocated SSL ressources X-Git-Tag: v1.6-dev2~72 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d3a23c3eb8c0950d26204568a133207099923494;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/ssl_sock.c b/src/ssl_sock.c index a6717a3c7b..e528db2aec 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