diff --git a/mysql-test/valgrind.supp b/mysql-test/valgrind.supp index 39748edd476..b09ab0904e7 100644 --- a/mysql-test/valgrind.supp +++ b/mysql-test/valgrind.supp @@ -1096,6 +1096,18 @@ fun:_Z8filesortP3THDP5TABLEP13st_sort_fieldjP10SQL_SELECTybPy } +{ + 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 diff --git a/sql/mysqld.cc b/sql/mysqld.cc index c78ffcbcd14..a357db146e7 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -2615,6 +2615,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(); mysql_cond_broadcast(&COND_thread_count); @@ -4071,6 +4074,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 19c84174cc2..7ac5912d455 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -3377,6 +3377,7 @@ err_during_init: DBUG_LEAVE; // Must match DBUG_ENTER() my_thread_end(); + ERR_remove_state(0); pthread_exit(0); return 0; // Avoid compiler warnings } @@ -3782,6 +3783,7 @@ err_during_init: 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 aed99e72d54..bdb21077f44 100644 --- a/vio/vio.c +++ b/vio/vio.c @@ -311,5 +311,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 }