mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-15444 Querying I_S.PARAMETERS can crash with a corrupted mysql.proc
This commit is contained in:
@ -6155,9 +6155,11 @@ bool store_schema_params(THD *thd, TABLE *table, TABLE *proc_table,
|
||||
proc_table->field[MYSQL_PROC_FIELD_NAME]->val_str_nopad(thd->mem_root, &name);
|
||||
proc_table->field[MYSQL_PROC_FIELD_DEFINER]->val_str_nopad(thd->mem_root, &definer);
|
||||
sql_mode= (sql_mode_t) proc_table->field[MYSQL_PROC_FIELD_SQL_MODE]->val_int();
|
||||
sph= Sp_handler::handler((stored_procedure_type) proc_table->field[MYSQL_PROC_MYSQL_TYPE]->val_int());
|
||||
sph= Sp_handler::handler_mysql_proc((stored_procedure_type)
|
||||
proc_table->field[MYSQL_PROC_MYSQL_TYPE]->
|
||||
val_int());
|
||||
if (!sph)
|
||||
sph= &sp_handler_procedure;
|
||||
DBUG_RETURN(0);
|
||||
|
||||
if (!full_access)
|
||||
full_access= !strcmp(sp_user, definer.str);
|
||||
@ -6265,10 +6267,11 @@ bool store_schema_proc(THD *thd, TABLE *table, TABLE *proc_table,
|
||||
proc_table->field[MYSQL_PROC_FIELD_DB]->val_str_nopad(thd->mem_root, &db);
|
||||
proc_table->field[MYSQL_PROC_FIELD_NAME]->val_str_nopad(thd->mem_root, &name);
|
||||
proc_table->field[MYSQL_PROC_FIELD_DEFINER]->val_str_nopad(thd->mem_root, &definer);
|
||||
sph= Sp_handler::handler((stored_procedure_type)
|
||||
proc_table->field[MYSQL_PROC_MYSQL_TYPE]->val_int());
|
||||
sph= Sp_handler::handler_mysql_proc((stored_procedure_type)
|
||||
proc_table->field[MYSQL_PROC_MYSQL_TYPE]->
|
||||
val_int());
|
||||
if (!sph)
|
||||
sph= &sp_handler_procedure;
|
||||
return 0;
|
||||
|
||||
if (!full_access)
|
||||
full_access= !strcmp(sp_user, definer.str);
|
||||
|
Reference in New Issue
Block a user