From 5f4bb8429e9a883bf77c2a5d42d81d43fea19e3a Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 18 Nov 2007 20:28:37 +0100 Subject: Bug#26379 - Combination of FLUSH TABLE and REPAIR TABLE corrupts a MERGE table Post-pushbuild fix for a Valgrind warning. mysql-test/r/merge.result: Bug#26379 - Combination of FLUSH TABLE and REPAIR TABLE corrupts a MERGE table Fixed test result. mysql-test/t/merge.test: Bug#26379 - Combination of FLUSH TABLE and REPAIR TABLE corrupts a MERGE table Removed unnecessary statements from test. sql/sql_trigger.cc: Bug#26379 - Combination of FLUSH TABLE and REPAIR TABLE corrupts a MERGE table Fixed usage of db and table_name for close_data_files_and_morph_locks(). --- sql/sql_trigger.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'sql/sql_trigger.cc') diff --git a/sql/sql_trigger.cc b/sql/sql_trigger.cc index 53f799fff1c..3129bd81572 100644 --- a/sql/sql_trigger.cc +++ b/sql/sql_trigger.cc @@ -489,8 +489,11 @@ bool mysql_create_or_drop_trigger(THD *thd, TABLE_LIST *tables, bool create) /* Under LOCK TABLES we must reopen the table to activate the trigger. */ if (!result && thd->locked_tables) { - close_data_files_and_morph_locks(thd, table->s->db.str, - table->s->table_name.str); + /* + Must not use table->s->db.str or table->s->table_name.str here. + The strings are used in a loop even after the share may be freed. + */ + close_data_files_and_morph_locks(thd, tables->db, tables->table_name); thd->in_lock_tables= 1; result= reopen_tables(thd, 1, 0); thd->in_lock_tables= 0; -- cgit v1.2.1