summaryrefslogtreecommitdiff
path: root/Zend/zend_execute_API.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2017-04-11 18:46:41 +0800
committerXinchen Hui <laruence@gmail.com>2017-04-11 18:46:41 +0800
commit87e6e1982bc6d6aa4062b6a42c38fa761833a1fc (patch)
tree91ded5b1724d968e6ac1f5101dd072f22821118f /Zend/zend_execute_API.c
parent3dc92791885b662f700768cd93c43d5f3f59f374 (diff)
parenteb03f16442c7ee10842dde0140b933d2be60b84b (diff)
downloadphp-git-87e6e1982bc6d6aa4062b6a42c38fa761833a1fc.tar.gz
Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0: Fixed bug #74408 (Endless loop bypassing execution time limit)
Diffstat (limited to 'Zend/zend_execute_API.c')
-rw-r--r--Zend/zend_execute_API.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 9080ae59a0..4a7ab54387 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -748,6 +748,15 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache) /
}
zend_error(E_DEPRECATED, "%s", error);
efree(error);
+ if (UNEXPECTED(EG(exception))) {
+ if (callable_name) {
+ zend_string_release(callable_name);
+ }
+ if (EG(current_execute_data) == &dummy_execute_data) {
+ EG(current_execute_data) = dummy_execute_data.prev_execute_data;
+ }
+ return FAILURE;
+ }
}
zend_string_release(callable_name);
}