From 28340acf023071c6a62655342faf0b4dca041039 Mon Sep 17 00:00:00 2001
From: unknown <tonu@volk.internalnet>
Date: Thu, 1 Nov 2001 16:59:00 +0200
Subject: [PATCH] SSL fixes.

client/mysql.cc:
  Some memory was unfreed :(
include/sslopt-case.h:
  Oh no, this typo made capath functionality unusable
vio/viossl.c:
  Want to debug timeout issues.
---
 client/mysql.cc       | 7 +++++++
 include/sslopt-case.h | 3 +--
 vio/viossl.c          | 4 ++--
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/client/mysql.cc b/client/mysql.cc
index 21a3b422b25..653f6bc9f44 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -379,6 +379,13 @@ int main(int argc,char *argv[])
 sig_handler mysql_end(int sig)
 {
   mysql_close(&mysql);
+#ifdef HAVE_OPENSSL
+  my_free(opt_ssl_key,MYF(MY_ALLOW_ZERO_PTR));
+  my_free(opt_ssl_cert,MYF(MY_ALLOW_ZERO_PTR));
+  my_free(opt_ssl_ca,MYF(MY_ALLOW_ZERO_PTR));
+  my_free(opt_ssl_capath,MYF(MY_ALLOW_ZERO_PTR));
+  my_free(opt_ssl_cipher,MYF(MY_ALLOW_ZERO_PTR));
+#endif  
 #ifdef HAVE_READLINE
   if (!status.batch && !quick && !opt_html && !opt_xml)
   {
diff --git a/include/sslopt-case.h b/include/sslopt-case.h
index b5720286778..b801e5e73c7 100644
--- a/include/sslopt-case.h
+++ b/include/sslopt-case.h
@@ -37,12 +37,11 @@
     case OPT_SSL_CAPATH:
       opt_use_ssl = 1;				/* true */
       my_free(opt_ssl_ca, MYF(MY_ALLOW_ZERO_PTR));
-      opt_ssl_ca = my_strdup(optarg, MYF(0));
+      opt_ssl_capath = my_strdup(optarg, MYF(0));
       break;
     case OPT_SSL_CIPHER:
       opt_use_ssl = 1;				/* true */
       my_free(opt_ssl_cipher, MYF(MY_ALLOW_ZERO_PTR));
       opt_ssl_cipher = my_strdup(optarg, MYF(0));
       break;
-
 #endif
diff --git a/vio/viossl.c b/vio/viossl.c
index 19fd6e0f0ab..c87836e56b6 100644
--- a/vio/viossl.c
+++ b/vio/viossl.c
@@ -292,7 +292,7 @@ void sslaccept(struct st_VioSSLAcceptorFd* ptr, Vio* vio, long timeout)
     report_errors();
     DBUG_VOID_RETURN;
   }
-  DBUG_PRINT("info", ("ssl_=%p",vio->ssl_));
+  DBUG_PRINT("info", ("ssl_=%p  timeout=%ld",vio->ssl_, timeout));
   SSL_clear(vio->ssl_);
   vio_blocking(vio, FALSE);
   SSL_SESSION_set_timeout(SSL_get_session(vio->ssl_), timeout);
@@ -348,7 +348,7 @@ void sslconnect(struct st_VioSSLConnectorFd* ptr, Vio* vio, long timeout)
     report_errors();
     DBUG_VOID_RETURN;
   }
-  DBUG_PRINT("info",("ssl_=%p",vio->ssl_));
+  DBUG_PRINT("info", ("ssl_=%p  timeout=%ld",vio->ssl_, timeout));
   SSL_clear(vio->ssl_);
   vio_blocking(vio, FALSE);
   SSL_SESSION_set_timeout(SSL_get_session(vio->ssl_), timeout);
-- 
2.30.9