summaryrefslogtreecommitdiff
path: root/Zend/zend_variables.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-01-05 22:13:22 +0800
committerXinchen Hui <laruence@php.net>2015-01-05 22:13:22 +0800
commit40230eef81c7331468324cebe7b39cdbff7d470c (patch)
treed36c53d6db766641cce6d88dc72152dd560f48a1 /Zend/zend_variables.c
parentc234ca8e17a844225a3ce5c64df9fdc5f39e23b9 (diff)
downloadphp-git-40230eef81c7331468324cebe7b39cdbff7d470c.tar.gz
Revert "Revert "Fix memory leak when dereferencing reference with refcount 1""
This reverts commit 7aab9659ee9c8bc15490d16b4064d64a3846147c.
Diffstat (limited to 'Zend/zend_variables.c')
-rw-r--r--Zend/zend_variables.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c
index 56b9b67598..b476bd9f8d 100644
--- a/Zend/zend_variables.c
+++ b/Zend/zend_variables.c
@@ -205,7 +205,9 @@ ZEND_API void zval_add_ref(zval *p)
{
if (Z_REFCOUNTED_P(p)) {
if (Z_ISREF_P(p) && Z_REFCOUNT_P(p) == 1) {
+ zend_reference *ref = Z_REF_P(p);
ZVAL_COPY(p, Z_REFVAL_P(p));
+ efree(ref);
} else {
Z_ADDREF_P(p);
}