From fb2de582941e77830133bde20e439fcad73b9a11 Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Mon, 25 Nov 2013 21:38:01 +0400 Subject: [PATCH] MDEV-5321 Calling mysql_library_end accesses freed memory; dumps memory to display. Don't call the vio_end() in the clean_up() in EMBEDDED mode. Call vio_end() before the end_embedded_server(). --- libmysql/libmysql.c | 4 ++-- sql/mysqld.cc | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index a6b7d2d6c8a..242144abc50 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -204,11 +204,11 @@ void STDCALL mysql_server_end() mysql_client_plugin_deinit(); + finish_client_errs(); + vio_end(); #ifdef EMBEDDED_LIBRARY end_embedded_server(); #endif - finish_client_errs(); - vio_end(); /* If library called my_init(), free memory allocated by it */ if (!org_my_init_done) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 90c1a83b9fc..73995980ffc 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -1851,7 +1851,9 @@ void clean_up(bool print_message) delete binlog_filter; delete rpl_filter; end_ssl(); +#ifndef EMBEDDED_LIBRARY vio_end(); +#endif /*!EMBEDDED_LIBRARY*/ my_regex_end(); #if defined(ENABLED_DEBUG_SYNC) /* End the debug sync facility. See debug_sync.cc. */