From f67896bb316b3cbf04049185da70cf73370dd5f2 Mon Sep 17 00:00:00 2001 From: "hf@deer.(none)" <> Date: Wed, 27 Jul 2005 17:34:20 +0500 Subject: [PATCH 1/3] Fix for bug #12177 (error file isn't closed) --- libmysqld/lib_sql.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 0ec7d161f24..4b05dd70e35 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -320,7 +320,8 @@ extern "C" static my_bool org_my_init_done; my_bool server_inited; -char ** copy_arguments_ptr= 0; +char ** copy_arguments_ptr= 0; +static FILE *errorlog_file=0; int STDCALL mysql_server_init(int argc, char **argv, char **groups) { @@ -421,7 +422,7 @@ int STDCALL mysql_server_init(int argc, char **argv, char **groups) opt_error_log= 1; // Too long file name else { - freopen(log_error_file, "a+", stderr); + errorlog_file= freopen(log_error_file, "a+", stderr); } } @@ -626,6 +627,8 @@ void STDCALL mysql_server_end() my_free((char*) copy_arguments_ptr, MYF(MY_ALLOW_ZERO_PTR)); copy_arguments_ptr=0; clean_up(0); + if (errorlog_file) + fclose(errorlog_file); /* If library called my_init(), free memory allocated by it */ if (!org_my_init_done) my_end(0); From 30dd658d4153a399c3379e0d526fd87d36077b2c Mon Sep 17 00:00:00 2001 From: "hf@deer.(none)" <> Date: Wed, 27 Jul 2005 19:39:59 +0500 Subject: [PATCH 2/3] addition to the fix for bug #12177(error log file isn't closed) --- libmysqld/lib_sql.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 4b05dd70e35..b71b442b4ca 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -628,7 +628,10 @@ void STDCALL mysql_server_end() copy_arguments_ptr=0; clean_up(0); if (errorlog_file) + { fclose(errorlog_file); + errorlog_file=0; + } /* If library called my_init(), free memory allocated by it */ if (!org_my_init_done) my_end(0); From 9d39e4a59c3fbcad862784085fbd81d2692759f5 Mon Sep 17 00:00:00 2001 From: "hf@deer.(none)" <> Date: Thu, 28 Jul 2005 17:18:24 +0500 Subject: [PATCH 3/3] Additional fix for #12177 (stderr isn't closed) --- libmysqld/lib_sql.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index b71b442b4ca..d607e1dcf43 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -627,14 +627,14 @@ void STDCALL mysql_server_end() my_free((char*) copy_arguments_ptr, MYF(MY_ALLOW_ZERO_PTR)); copy_arguments_ptr=0; clean_up(0); + /* If library called my_init(), free memory allocated by it */ + if (!org_my_init_done) + my_end(0); if (errorlog_file) { fclose(errorlog_file); errorlog_file=0; } - /* If library called my_init(), free memory allocated by it */ - if (!org_my_init_done) - my_end(0); } my_bool STDCALL mysql_thread_init()