diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 52cd979f5d6..1a52041ab3f 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -4196,6 +4196,7 @@ ZEND_VM_HANDLER(107, ZEND_CATCH, CONST, CV, JMP_ADDR) if (UNEXPECTED(Z_ISREF_P(ex))) { ex = Z_REFVAL_P(ex); } + zval_ptr_dtor(ex); ZVAL_OBJ(ex, EG(exception)); if (UNEXPECTED(EG(exception) != exception)) { GC_REFCOUNT(EG(exception))++; diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 231f4e56b3d..3d0bcf8a191 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -9434,6 +9434,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CATCH_SPEC_CONST_CV_HANDLER(ZE if (UNEXPECTED(Z_ISREF_P(ex))) { ex = Z_REFVAL_P(ex); } + zval_ptr_dtor(ex); ZVAL_OBJ(ex, EG(exception)); if (UNEXPECTED(EG(exception) != exception)) { GC_REFCOUNT(EG(exception))++;