mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-16478: mysql_real_connect() from libmariadbd.so always crash
Returned accidentally removed undefinition of MYSQL_SERVER in net_serv.cc inside embedded server (embedded server uses real_net_read/write only as a client) Prevented attempt to clean up embedded server if it was not initialized
This commit is contained in:
@ -55,6 +55,9 @@ extern "C" void unireg_clear(int exit_code)
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
static my_bool mysql_embedded_init= 0;
|
||||
|
||||
/*
|
||||
Wrapper error handler for embedded server to call client/server error
|
||||
handler based on whether thread is in client/server context
|
||||
@ -518,6 +521,8 @@ int init_embedded_server(int argc, char **argv, char **groups)
|
||||
const char *fake_groups[] = { "server", "embedded", 0 };
|
||||
my_bool acl_error;
|
||||
|
||||
DBUG_ASSERT(mysql_embedded_init == 0);
|
||||
|
||||
if (my_thread_init())
|
||||
return 1;
|
||||
|
||||
@ -637,15 +642,19 @@ int init_embedded_server(int argc, char **argv, char **groups)
|
||||
}
|
||||
|
||||
execute_ddl_log_recovery();
|
||||
mysql_embedded_init= 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void end_embedded_server()
|
||||
{
|
||||
my_free(copy_arguments_ptr);
|
||||
copy_arguments_ptr=0;
|
||||
clean_up(0);
|
||||
clean_up_mutexes();
|
||||
if (mysql_embedded_init)
|
||||
{
|
||||
my_free(copy_arguments_ptr);
|
||||
copy_arguments_ptr=0;
|
||||
clean_up(0);
|
||||
clean_up_mutexes();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user