diff options
Diffstat (limited to 'libmysql')
-rw-r--r-- | libmysql/libmysql.c | 9 |
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) |