mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
BUG#31650096: MYSQL SERVER HEAP-USE-AFTER-FREE IN TRANS_SAVEPOINT
ANALYSIS: ========= During Bootstrap, while executing the statements from sql file passed to the init-file server option, transaction mem_root was being freed for every statement. This creates an issue with multi statement transactions especially when a statement in the transaction has to access the memory used by the previous statement in the transaction. FIX: ==== Transaction mem_root is freed whenever a transaction is committed or rolled-back. Hence explicitly freeing it is not necessary in the bootstrap implementation. Change-Id: I40f71d49781bf7ad32d474bb176bd6060c9377dc
This commit is contained in:
committed by
Sergei Golubchik
parent
0c3723e1d5
commit
1269fd420d
@ -811,7 +811,6 @@ static void handle_bootstrap_impl(THD *thd)
|
|||||||
|
|
||||||
thd->reset_kill_query(); /* Ensure that killed_errmsg is released */
|
thd->reset_kill_query(); /* Ensure that killed_errmsg is released */
|
||||||
free_root(thd->mem_root,MYF(MY_KEEP_PREALLOC));
|
free_root(thd->mem_root,MYF(MY_KEEP_PREALLOC));
|
||||||
free_root(&thd->transaction.mem_root,MYF(MY_KEEP_PREALLOC));
|
|
||||||
thd->lex->restore_set_statement_var();
|
thd->lex->restore_set_statement_var();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user