mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Fix for memory leaks introduced with the push of patch for bug#22740.
Original patch did not have these leaks, they were introduced later during manual applying of the patch. sql/event_data_objects.cc: Original patch was not aware of the requirement to delete lex.sphead before doing anything else (bug#21856), and that was missed when the patch was applied later. sql/event_scheduler.cc: The line was lost during manual patch applying.
This commit is contained in:
@@ -1811,16 +1811,21 @@ Event_job_data::compile(THD *thd, MEM_ROOT *mem_root)
|
||||
DBUG_PRINT("error", ("error during compile or thd->is_fatal_error: %d",
|
||||
thd->is_fatal_error));
|
||||
/*
|
||||
Free lex associated resources
|
||||
QQ: Do we really need all this stuff here?
|
||||
The first thing we do after parse error is freeing sp_head to
|
||||
ensure that we have restored original memroot.
|
||||
*/
|
||||
if (lex.sphead)
|
||||
{
|
||||
/* Clean up after failed stored procedure/function */
|
||||
delete lex.sphead;
|
||||
lex.sphead= NULL;
|
||||
}
|
||||
lex.unit.cleanup();
|
||||
|
||||
sql_print_error("SCHEDULER: Error during compilation of %s.%s or "
|
||||
"thd->is_fatal_error: %d",
|
||||
dbname.str, name.str, thd->is_fatal_error);
|
||||
|
||||
lex.unit.cleanup();
|
||||
delete lex.sphead;
|
||||
sphead= lex.sphead= NULL;
|
||||
ret= EVEX_COMPILE_ERROR;
|
||||
goto done;
|
||||
}
|
||||
|
Reference in New Issue
Block a user