summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorStaale Smedseng <staale.smedseng@sun.com>2010-02-26 15:30:14 +0100
committerStaale Smedseng <staale.smedseng@sun.com>2010-02-26 15:30:14 +0100
commit600a28368916ae07c0694ae090dcba7f2c52b12a (patch)
treeb32a770ac7c9db71ae25b1590e774c3fe0f3a43f /sql
parentca6691533a7e2a454bbb614583a0058bf7acd2d2 (diff)
downloadmariadb-git-600a28368916ae07c0694ae090dcba7f2c52b12a.tar.gz
Bug #45058 init_available_charsets uses double checked locking
A client doing multiple mysql_library_init() and mysql_library_end() calls over the lifetime of the process may experience lost character set data, potentially even a SIGSEGV. This patch reinstates the reloading of character set data when a mysql_library_init() is done after a mysql_library_end().
Diffstat (limited to 'sql')
-rw-r--r--sql/mysqld.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index a483b9e2381..122fadf9847 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -1287,6 +1287,7 @@ void clean_up(bool print_message)
lex_free(); /* Free some memory */
item_create_cleanup();
set_var_free();
+ free_charsets();
if (!opt_noacl)
{
#ifdef HAVE_DLOPEN