diff options
author | Xinchen Hui <laruence@php.net> | 2015-03-08 20:22:02 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2015-03-08 20:22:02 +0800 |
commit | 5aebdc98dea1f15993c21eefa25f83383b6e2389 (patch) | |
tree | 69b3145374ad1b77b011aefc42c241b9200d8e5c /Zend/zend_vm_def.h | |
parent | 609f05fc19864384fe03a4b97ad263cc0aaf32a0 (diff) | |
download | php-git-5aebdc98dea1f15993c21eefa25f83383b6e2389.tar.gz |
Fixed bug #69201 (Memory leak using iterator and get by reference on PHP 7)
Diffstat (limited to 'Zend/zend_vm_def.h')
-rw-r--r-- | Zend/zend_vm_def.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index d0d6079b39..551e98bd52 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -402,6 +402,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMPVAR| } ZVAL_COPY_VALUE(z, value); } + zptr = z; ZVAL_DEREF(z); SEPARATE_ZVAL_NOREF(z); binary_op(z, z, value); @@ -409,7 +410,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMPVAR| if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_COPY(EX_VAR(opline->result.var), z); } - zval_ptr_dtor(z); + zval_ptr_dtor(zptr); } else { zend_error(E_WARNING, "Attempt to assign property of non-object"); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { |