summaryrefslogtreecommitdiff
path: root/Zend/zend_builtin_functions.c
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-09-03 10:29:18 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-09-03 10:29:18 +0200
commit3b853c97f3e74d4bb3dbdcfe847e1441a2e9dcb5 (patch)
treebdb291739358e6add17ee0afe1a14ecaee39c2e4 /Zend/zend_builtin_functions.c
parentdaf222c9f88e2aac41437ca97cfe2c60300eed23 (diff)
downloadphp-git-3b853c97f3e74d4bb3dbdcfe847e1441a2e9dcb5.tar.gz
Fixed bug #80045
Applying the obvious fix ... however, I think we may need to rething how we handle trampoline fcc for "f" zpp. It might make sense to use fcc->function_handler == NULL for that case and force it to be fetched in zend_call_function instead (it will be reset to that after the call anyway). Otherwise we will keep chasing these leaks, as it's the only instance where it's necessary to free a zpp result.
Diffstat (limited to 'Zend/zend_builtin_functions.c')
-rw-r--r--Zend/zend_builtin_functions.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index c3a2a1b63f..906f0666ed 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -1198,6 +1198,7 @@ ZEND_FUNCTION(set_error_handler)
ZVAL_COPY(&EG(user_error_handler), &(fci.function_name));
EG(user_error_handler_error_reporting) = (int)error_type;
+ zend_release_fcall_info_cache(&fcc);
}
/* }}} */
@@ -1253,6 +1254,7 @@ ZEND_FUNCTION(set_exception_handler)
}
ZVAL_COPY(&EG(user_exception_handler), &(fci.function_name));
+ zend_release_fcall_info_cache(&fcc);
}
/* }}} */