summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2005-05-04 11:16:58 +0000
committerDmitry Stogov <dmitry@php.net>2005-05-04 11:16:58 +0000
commit8f95eb97e28d93ad7b67c5cbb5e48a7265770445 (patch)
tree80aa13a1ab8aa91a794307d3be6f87e33bd345bd /Zend/zend_execute.c
parent39a1bc4a4638901a948231ae08d06d54188faf99 (diff)
downloadphp-git-8f95eb97e28d93ad7b67c5cbb5e48a7265770445.tar.gz
Fixed bug #30707 (Segmentation fault on exception in method)
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 6de376dad1..a09d8a9094 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -4334,6 +4334,13 @@ int zend_handle_exception_handler(ZEND_OPCODE_HANDLER_ARGS)
}
}
+ while (EX(fbc)) {
+ if (EX(object)) {
+ zval_ptr_dtor(&EX(object));
+ }
+ zend_ptr_stack_n_pop(&EG(arg_types_stack), 3, &EX(calling_scope), &EX(object), &EX(fbc));
+ }
+
if (encapsulating_block == -1) {
RETURN_FROM_EXECUTE_LOOP(execute_data);
} else {