From 127036d3ec956c1d5f7e9c206a1a74d65c0f9be8 Mon Sep 17 00:00:00 2001 From: Steven Schweda Date: Fri, 4 Nov 2011 22:31:48 +0100 Subject: [PATCH] gnutls: fix memory leak. --- src/ChangeLog | 3 ++- src/gnutls.c | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 65c48072..d1358bfa 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,6 @@ -2011-11-04 Giuseppe Scrivano +2011-11-01 Steven Schweda + * gnutls.c (ssl_init): Ensure GNU TLS is loaded only once. 2011-10-07 Steven Schweda diff --git a/src/gnutls.c b/src/gnutls.c index 40a04ef3..e4b0fc2e 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -63,6 +63,13 @@ static gnutls_certificate_credentials credentials; bool ssl_init () { + /* Becomes true if GnuTLS is initialized. */ + static bool ssl_initialized = false; + + /* GnuTLS should be initialized only once. */ + if (ssl_initialized) + return true; + const char *ca_directory; DIR *dir; @@ -104,6 +111,9 @@ ssl_init () if (opt.ca_cert) gnutls_certificate_set_x509_trust_file (credentials, opt.ca_cert, GNUTLS_X509_FMT_PEM); + + ssl_initialized = true; + return true; } -- 2.39.2