Commit eb88db24 authored by Chad MILLER's avatar Chad MILLER

Fix for bug#36399: Double free bug when INFORMATION_SCHEMA

plugin init function fails

Problem: if an INFORMATION_SCHEMA plugin initialization fails
we free some inner plugin's data (schema_table) twice during the 
INSTALL PLUGIN command.

Fix: free it once.
parent 675610ff
...@@ -6644,17 +6644,15 @@ int initialize_schema_table(st_plugin_int *plugin) ...@@ -6644,17 +6644,15 @@ int initialize_schema_table(st_plugin_int *plugin)
{ {
sql_print_error("Plugin '%s' init function returned error.", sql_print_error("Plugin '%s' init function returned error.",
plugin->name.str); plugin->name.str);
goto err; plugin->data= NULL;
my_free(schema_table, MYF(0));
DBUG_RETURN(1);
} }
/* Make sure the plugin name is not set inside the init() function. */ /* Make sure the plugin name is not set inside the init() function. */
schema_table->table_name= plugin->name.str; schema_table->table_name= plugin->name.str;
} }
DBUG_RETURN(0); DBUG_RETURN(0);
err:
my_free(schema_table, MYF(0));
DBUG_RETURN(1);
} }
int finalize_schema_table(st_plugin_int *plugin) int finalize_schema_table(st_plugin_int *plugin)
......
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