From eb88db2485bf0eef3d59db08a7c4caf840c49d2f Mon Sep 17 00:00:00 2001 From: Chad MILLER Date: Mon, 18 Aug 2008 12:15:56 -0400 Subject: [PATCH] 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. --- sql/sql_show.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 16a0342cb1f..005eea06e2e 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -6644,17 +6644,15 @@ int initialize_schema_table(st_plugin_int *plugin) { sql_print_error("Plugin '%s' init function returned error.", 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. */ schema_table->table_name= plugin->name.str; } - DBUG_RETURN(0); -err: - my_free(schema_table, MYF(0)); - DBUG_RETURN(1); } int finalize_schema_table(st_plugin_int *plugin)