Fix use after free with file cache and arena allocated strings

This commit is contained in:
Nikita Popov 2020-12-01 11:31:23 +01:00
parent 648cda6c9f
commit 5dfec886d6

View File

@ -422,6 +422,9 @@ void init_compiler(void) /* {{{ */
void shutdown_compiler(void) /* {{{ */
{
/* Reset filename before destroying the arena, as file cache may use arena allocated strings. */
zend_restore_compiled_filename(NULL);
zend_stack_destroy(&CG(loop_var_stack));
zend_stack_destroy(&CG(delayed_oplines_stack));
zend_stack_destroy(&CG(short_circuiting_opnums));
@ -437,7 +440,6 @@ void shutdown_compiler(void) /* {{{ */
FREE_HASHTABLE(CG(delayed_autoloads));
CG(delayed_autoloads) = NULL;
}
zend_restore_compiled_filename(NULL);
}
/* }}} */