summaryrefslogtreecommitdiff
path: root/Zend/zend_generators.c
diff options
context:
space:
mode:
authorBob Weinand <bobwei9@hotmail.com>2015-05-14 17:17:39 +0200
committerBob Weinand <bobwei9@hotmail.com>2015-05-14 17:17:39 +0200
commitc6a6b9746de0411fb2b352d8d4dfc432cb56eb91 (patch)
tree65e62efd38e15963677d8ccd89d8bed5e766d24b /Zend/zend_generators.c
parentfc75d07652717a374e01aa557b165af3fc9606b6 (diff)
downloadphp-git-c6a6b9746de0411fb2b352d8d4dfc432cb56eb91.tar.gz
Fix memleak in generators using symtable
Diffstat (limited to 'Zend/zend_generators.c')
-rw-r--r--Zend/zend_generators.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c
index e845b2e5f2..706d913f72 100644
--- a/Zend/zend_generators.c
+++ b/Zend/zend_generators.c
@@ -104,11 +104,11 @@ ZEND_API void zend_generator_close(zend_generator *generator, zend_bool finished
if (generator->execute_data) {
zend_execute_data *execute_data = generator->execute_data;
- if (!execute_data->symbol_table) {
- zend_free_compiled_variables(execute_data);
- } else {
+ if (execute_data->symbol_table) {
zend_clean_and_cache_symbol_table(execute_data->symbol_table);
}
+ /* always free the CV's, in the symtable are only not-free'd IS_INDIRECT's */
+ zend_free_compiled_variables(execute_data);
if (Z_OBJ(execute_data->This)) {
OBJ_RELEASE(Z_OBJ(execute_data->This));