Bug#27302459: EMPTY VALUE IN MYSQL.PLUGIN TABLE CAUSES SERVER TO EXIT ON STARTUP

Description:- During server startup, the server exits if
the 'mysql.plugin' system table has any rows with empty
value for the field 'name' (plugin name).
This commit is contained in:
Sergei Golubchik 2019-04-16 09:33:02 +05:30 committed by Sergei Golubchik
parent c5e9674300
commit 5e8ab9b7af
3 changed files with 11 additions and 0 deletions

View File

@ -277,3 +277,5 @@ UNUSABLE
uninstall soname 'ha_example';
select plugin_name from information_schema.plugins where plugin_library like 'ha_example%';
plugin_name
insert mysql.plugin values ();
delete from mysql.plugin where name = '';

View File

@ -224,3 +224,9 @@ select plugin_name from information_schema.plugins where plugin_library like 'ha
uninstall soname 'ha_example';
select plugin_name from information_schema.plugins where plugin_library like 'ha_example%';
#
# Bug#27302459: EMPTY VALUE IN MYSQL.PLUGIN TABLE CAUSES SERVER TO EXIT ON STARTUP
#
insert mysql.plugin values ();
source include/restart_mysqld.inc;
delete from mysql.plugin where name = '';

View File

@ -1781,6 +1781,9 @@ static void plugin_load(MEM_ROOT *tmp_root)
LEX_STRING name= {(char *)str_name.ptr(), str_name.length()};
LEX_STRING dl= {(char *)str_dl.ptr(), str_dl.length()};
if (!name.length || !dl.length)
continue;
/*
there're no other threads running yet, so we don't need a mutex.
but plugin_add() before is designed to work in multi-threaded