]> sjero.net Git - wget/commitdiff
gnutls: fix memory leak.
authorSteven Schweda <sms@antinode.info>
Fri, 4 Nov 2011 21:31:48 +0000 (22:31 +0100)
committerGiuseppe Scrivano <gscrivano@gnu.org>
Fri, 4 Nov 2011 21:31:48 +0000 (22:31 +0100)
src/ChangeLog
src/gnutls.c

index 65c48072620b75120a44ce5d1edfd343fe188c3f..d1358bfa747752fc67dbede197925acafb91a9c2 100644 (file)
@@ -1,5 +1,6 @@
-2011-11-04  Giuseppe Scrivano  <gscrivano@gnu.org>
+2011-11-01  Steven Schweda  <address@hidden>
 
+       * gnutls.c (ssl_init): Ensure GNU TLS is loaded only once.
 
 2011-10-07  Steven Schweda  <address@hidden>
 
index 40a04ef32733b6d20a804625f8a6711bf0517640..e4b0fc2ea026bf731486169009f1ed38d883e790 100644 (file)
@@ -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;
 }