diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2015-12-17 14:16:19 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2015-12-17 14:16:19 +0300 |
| commit | 9e44b6a61e7ca116c3ea6de4080276ef9a650d06 (patch) | |
| tree | 543245d5918c4fec27e7d382e8e8a30b3ccf7a32 | |
| parent | 860ef0e2d7439214098430898fe15051ffc5e3a8 (diff) | |
| download | php-git-9e44b6a61e7ca116c3ea6de4080276ef9a650d06.tar.gz | |
Fixed incorrect exception handling
| -rw-r--r-- | Zend/zend_vm_def.h | 2 | ||||
| -rw-r--r-- | Zend/zend_vm_execute.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 4c01a5d1af..0e555f5f83 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -2383,7 +2383,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) if (UNEXPECTED(EG(exception) != NULL)) { const zend_op *old_opline = EX(opline); zend_throw_exception_internal(NULL); - if (RETURN_VALUE_USED(old_opline)) { + if (old_opline->opcode != ZEND_HANDLE_EXCEPTION && RETURN_VALUE_USED(old_opline)) { zval_ptr_dtor(EX_VAR(old_opline->result.var)); } HANDLE_EXCEPTION_LEAVE(); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 0fd696d327..8ef0c4dbbf 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -501,7 +501,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_ if (UNEXPECTED(EG(exception) != NULL)) { const zend_op *old_opline = EX(opline); zend_throw_exception_internal(NULL); - if (RETURN_VALUE_USED(old_opline)) { + if (old_opline->opcode != ZEND_HANDLE_EXCEPTION && RETURN_VALUE_USED(old_opline)) { zval_ptr_dtor(EX_VAR(old_opline->result.var)); } HANDLE_EXCEPTION_LEAVE(); |
