summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mnogosearch.org>2013-10-16 17:58:15 +0400
committerAlexander Barkov <bar@mnogosearch.org>2013-10-16 17:58:15 +0400
commit2b60ad363743cd9515cd3dddbaed7cad28c49e65 (patch)
tree551e7e381fea88d74b68be8e72b75a7e32a8ea78
parent7ba78277b4d76649501e85f05be2780e00ffc9c3 (diff)
parentde4ca539b896abfb2888ce7dee6f7de39d2e9657 (diff)
downloadmariadb-git-2b60ad363743cd9515cd3dddbaed7cad28c49e65.tar.gz
Merge 5.1->5.2
-rw-r--r--mysql-test/valgrind.supp12
-rw-r--r--sql/mysqld.cc4
-rw-r--r--sql/slave.cc2
-rw-r--r--vio/vio.c6
4 files changed, 24 insertions, 0 deletions
diff --git a/mysql-test/valgrind.supp b/mysql-test/valgrind.supp
index 30d77fa3e72..3d51e945d35 100644
--- a/mysql-test/valgrind.supp
+++ b/mysql-test/valgrind.supp
@@ -1061,6 +1061,18 @@
}
{
+ OpenSSL still reachable.
+ Memcheck:Leak
+ fun:*alloc
+ fun:CRYPTO_malloc
+ fun:sk_new
+ obj:*libssl*
+ fun:SSL_COMP_get_compression_methods
+ fun:SSL_library_init
+}
+
+
+{
Problem with udf and libresolve
Memcheck:Cond
obj:*/libresolv*.so
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 885f2e72190..a6623e9b239 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -2134,6 +2134,9 @@ bool one_thread_per_connection_end(THD *thd, bool put_in_cache)
/* It's safe to broadcast outside a lock (COND... is not deleted here) */
DBUG_PRINT("signal", ("Broadcasting COND_thread_count"));
DBUG_LEAVE; // Must match DBUG_ENTER()
+#ifndef EMBEDDED_LIBRARY
+ ERR_remove_state(0);
+#endif
my_thread_end();
(void) pthread_cond_broadcast(&COND_thread_count);
@@ -3794,6 +3797,7 @@ static void init_ssl()
opt_ssl_ca, opt_ssl_capath,
opt_ssl_cipher, &error);
DBUG_PRINT("info",("ssl_acceptor_fd: 0x%lx", (long) ssl_acceptor_fd));
+ ERR_remove_state(0);
if (!ssl_acceptor_fd)
{
sql_print_warning("Failed to setup SSL");
diff --git a/sql/slave.cc b/sql/slave.cc
index 3c7cf166b20..7d397b96e6f 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -2855,6 +2855,7 @@ err:
DBUG_LEAVE; // Must match DBUG_ENTER()
my_thread_end();
+ ERR_remove_state(0);
pthread_exit(0);
return 0; // Avoid compiler warnings
}
@@ -3251,6 +3252,7 @@ the slave SQL thread with \"SLAVE START\". We stopped at log \
DBUG_LEAVE; // Must match DBUG_ENTER()
my_thread_end();
+ ERR_remove_state(0);
pthread_exit(0);
return 0; // Avoid compiler warnings
}
diff --git a/vio/vio.c b/vio/vio.c
index 486fe63da05..7b2cf45142f 100644
--- a/vio/vio.c
+++ b/vio/vio.c
@@ -250,5 +250,11 @@ void vio_end(void)
{
#ifdef HAVE_YASSL
yaSSL_CleanUp();
+#elif defined(HAVE_OPENSSL)
+ // This one is needed on the client side
+ ERR_remove_state(0);
+ ERR_free_strings();
+ EVP_cleanup();
+ CRYPTO_cleanup_all_ex_data();
#endif
}