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.
This commit is contained in:
Chad MILLER 2008-08-18 12:15:56 -04:00
parent 675610ff8d
commit eb88db2485

View File

@ -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)