diff --git a/mysql-test/t/grant.test b/mysql-test/t/grant.test index e540ce703a1..44e7945847c 100644 --- a/mysql-test/t/grant.test +++ b/mysql-test/t/grant.test @@ -1266,6 +1266,12 @@ DROP DATABASE db27878; use test; DROP TABLE t1; +--echo # +--echo # Bug#33275 Server crash when creating temporary table mysql.user +--echo # +CREATE TEMPORARY TABLE mysql.user (id INT); +FLUSH PRIVILEGES; +DROP TABLE mysql.user; # # Bug #33201 Crash occurs when granting update privilege on one column of a view # diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 9a218395721..db0292f92e3 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -691,6 +691,8 @@ my_bool acl_reload(THD *thd) tables[0].next_local= tables[0].next_global= tables+1; tables[1].next_local= tables[1].next_global= tables+2; tables[0].lock_type=tables[1].lock_type=tables[2].lock_type=TL_READ; + tables[0].skip_temporary= tables[1].skip_temporary= + tables[2].skip_temporary= TRUE; if (simple_open_n_lock_tables(thd, tables)) { @@ -3773,7 +3775,8 @@ my_bool grant_reload(THD *thd) tables[0].db= tables[1].db= (char *) "mysql"; tables[0].next_local= tables[0].next_global= tables+1; tables[0].lock_type= tables[1].lock_type= TL_READ; - + tables[0].skip_temporary= tables[1].skip_temporary= + tables[2].skip_temporary= TRUE; /* To avoid deadlocks we should obtain table locks before obtaining LOCK_grant rwlock.