summaryrefslogtreecommitdiff
path: root/libmysql
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
commit04f1434781cf459ca98d4f0c385f093d30db3f2e (patch)
treeb32a770ac7c9db71ae25b1590e774c3fe0f3a43f /libmysql
parent5d9a74f22dfefd27d0bb62a1829a2484741bbf8a (diff)
downloadmariadb-git-04f1434781cf459ca98d4f0c385f093d30db3f2e.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 'libmysql')
-rw-r--r--libmysql/libmysql.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c
index f626361536f..6ea777a0702 100644
--- a/libmysql/libmysql.c
+++ b/libmysql/libmysql.c
@@ -211,6 +211,7 @@ void STDCALL mysql_server_end()
}
else
{
+ free_charsets();
mysql_thread_end();
}