Commit 2a5b413a authored by unknown's avatar unknown

Fix for #1210

i fixed this in 4.1 in slightly different way


libmysqld/lib_sql.cc:
  Initialization's flag was made global
libmysqld/libmysqld.c:
  Check for mysql_server_init call added
parent 07cacdcb
...@@ -306,7 +306,8 @@ char **copy_arguments(int argc, char **argv) ...@@ -306,7 +306,8 @@ char **copy_arguments(int argc, char **argv)
extern "C" extern "C"
{ {
static my_bool inited, org_my_init_done; static my_bool org_my_init_done;
my_bool server_inited;
ulong max_allowed_packet, net_buffer_length; ulong max_allowed_packet, net_buffer_length;
char ** copy_arguments_ptr= 0; char ** copy_arguments_ptr= 0;
...@@ -338,9 +339,9 @@ int STDCALL mysql_server_init(int argc, char **argv, char **groups) ...@@ -338,9 +339,9 @@ int STDCALL mysql_server_init(int argc, char **argv, char **groups)
my_umask_dir=0700; // Default umask for new directories my_umask_dir=0700; // Default umask for new directories
/* Only call MY_INIT() if it hasn't been called before */ /* Only call MY_INIT() if it hasn't been called before */
if (!inited) if (!server_inited)
{ {
inited=1; server_inited=1;
org_my_init_done=my_init_done; org_my_init_done=my_init_done;
} }
if (!org_my_init_done) if (!org_my_init_done)
......
...@@ -74,6 +74,8 @@ static int send_file_to_server(MYSQL *mysql,const char *filename); ...@@ -74,6 +74,8 @@ static int send_file_to_server(MYSQL *mysql,const char *filename);
static ulong mysql_sub_escape_string(CHARSET_INFO *charset_info, char *to, static ulong mysql_sub_escape_string(CHARSET_INFO *charset_info, char *to,
const char *from, ulong length); const char *from, ulong length);
extern char server_inited;
#define init_sigpipe_variables #define init_sigpipe_variables
#define set_sigpipe(mysql) #define set_sigpipe(mysql)
#define reset_sigpipe(mysql) #define reset_sigpipe(mysql)
...@@ -802,6 +804,17 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user, ...@@ -802,6 +804,17 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
db ? db : "(Null)", db ? db : "(Null)",
user ? user : "(Null)")); user ? user : "(Null)"));
/*
Check mysql_server_init was called.
This code shouldn't be merged to 4.1
*/
if (!server_inited)
{
net->last_errno=CR_UNKNOWN_ERROR;
strmov(net->last_error,ER(net->last_errno));
goto error;
}
net->vio = 0; /* If something goes wrong */ net->vio = 0; /* If something goes wrong */
/* use default options */ /* use default options */
if (mysql->options.my_cnf_file || mysql->options.my_cnf_group) if (mysql->options.my_cnf_file || mysql->options.my_cnf_group)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment