mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
MDEV-22881 Unexpected errors, corrupt output, Valgrind / ASAN errors in Item_ident::print or append_identifier
After this code
end_inplace:
if (thd->locked_tables_list.reopen_tables(thd, false))
goto err_with_mdl_after_alter;
table is not reopened (need_reopen is false) but
some_table_marked_for_reopen is reset to false.
Item_field is allocated on table lock and assigned new name on first
ALTER which is then freed at the end of the command. Second ALTER
accessess this Item_field and gets garbage value.
This commit is contained in:
@@ -2592,7 +2592,8 @@ Locked_tables_list::reopen_tables(THD *thd, bool need_reopen)
|
||||
|
||||
|
||||
/* Reset flag that some table was marked for reopen */
|
||||
some_table_marked_for_reopen= 0;
|
||||
if (need_reopen)
|
||||
some_table_marked_for_reopen= 0;
|
||||
|
||||
for (TABLE_LIST *table_list= m_locked_tables;
|
||||
table_list; table_list= table_list->next_global)
|
||||
|
||||
Reference in New Issue
Block a user