From 269a02fbb332da8faf6c2a614d45d5b5018816d1 Mon Sep 17 00:00:00 2001
|
|
From: Remi Gacogne <rgacogne@aquaray.fr>
|
|
Date: Thu, 28 May 2015 16:39:47 +0200
|
|
Subject: [PATCH 11/14] 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.
|
|
(cherry picked from commit d3a23c3eb8c0950d26204568a133207099923494)
|
|
---
|
|
src/ssl_sock.c | 36 ++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 36 insertions(+)
|
|
|
|
diff --git a/src/ssl_sock.c b/src/ssl_sock.c
|
|
index d0f4d01..a78fc6a 100644
|
|
--- a/src/ssl_sock.c
|
|
+++ b/src/ssl_sock.c
|
|
@@ -4717,6 +4717,42 @@ static void __ssl_sock_init(void)
|
|
cfg_register_keywords(&cfg_kws);
|
|
}
|
|
|
|
+__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.0.5
|
|
|