1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-18239 ASAN use-after-poison in process_str_arg / ... / mark_unsupported_func or unexpected ER_BAD_FIELD_ERROR upon ALTER TABLE

renaming columns in a CHECK constraint during ALTER TABLE
taints the original TABLE and requires m_need_reopen=1.

In this case, though, renaming was redundant, so just don't do it.
This commit is contained in:
Sergei Golubchik
2019-02-03 19:56:41 +01:00
parent db8f0daeb4
commit b57ae8b58c
3 changed files with 29 additions and 1 deletions

View File

@ -8123,7 +8123,12 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
}
if (!drop)
{
check->expr->walk(&Item::rename_fields_processor, 1, &column_rename_param);
if (alter_info->flags & Alter_info::ALTER_RENAME_COLUMN)
{
check->expr->walk(&Item::rename_fields_processor, 1,
&column_rename_param);
table->m_needs_reopen= 1; // because new column name is on thd->mem_root
}
new_constraint_list.push_back(check, thd->mem_root);
}
}