File 0009-MINOR-ssl-add-a-destructor-to-free-allocated-SSL-res.patch of Package haproxy.748

From bd4679df119da7809a8039945b1844f32eb5edc0 Mon Sep 17 00:00:00 2001
From: Remi Gacogne <rgacogne@aquaray.fr>
Date: Thu, 28 May 2015 16:39:47 +0200
Subject: [PATCH 09/13] 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.1.4
openSUSE Build Service is sponsored by