diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 39384453216..e4fd8e8e280 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -4193,6 +4193,7 @@ ZEND_VM_HANDLER(107, ZEND_CATCH, CONST, CV) 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 08a5ae622d6..0103128183e 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -9592,6 +9592,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))++;