summaryrefslogtreecommitdiff
path: root/libmysql
diff options
context:
space:
mode:
Diffstat (limited to 'libmysql')
-rw-r--r--libmysql/libmysql.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c
index feee3451f51..04f62df32a9 100644
--- a/libmysql/libmysql.c
+++ b/libmysql/libmysql.c
@@ -90,6 +90,8 @@ static sig_handler pipe_sig_handler(int sig);
static ulong mysql_sub_escape_string(CHARSET_INFO *charset_info, char *to,
const char *from, ulong length);
+static my_bool org_my_init_done=0;
+
int STDCALL mysql_server_init(int argc __attribute__((unused)),
char **argv __attribute__((unused)),
char **groups __attribute__((unused)))
@@ -98,7 +100,11 @@ int STDCALL mysql_server_init(int argc __attribute__((unused)),
}
void STDCALL mysql_server_end()
-{}
+{
+ /* If library called my_init(), free memory allocated by it */
+ if (!org_my_init_done)
+ my_end(0);
+}
my_bool STDCALL mysql_thread_init()
{
@@ -1352,6 +1358,7 @@ static void mysql_once_init()
if (!mysql_client_init)
{
mysql_client_init=1;
+ org_my_init_done=my_init_done;
my_init(); /* Will init threads */
init_client_errs();
if (!mysql_port)