From 9d49492fd66cce4d62ad57aa29ef3b6ae076e1ef Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Tue, 24 Jun 2014 13:53:05 +0800 Subject: [PATCH] Fixed bug #67368 (Memory leak with immediately dereferenced array in class constant) --- NEWS | 2 ++ Zend/tests/bug67368.phpt | 12 ++++++++++++ Zend/zend_ast.c | 3 +-- 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 Zend/tests/bug67368.phpt diff --git a/NEWS b/NEWS index 693486b889..373f810881 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,8 @@ PHP NEWS ?? ??? 2014, PHP 5.6.0 Release Candidate 2 - Core: + . Fixed bug #67368 (Memory leak with immediately dereferenced array in class + constant). (Laruence) . Fixed bug #67468 (Segfault in highlight_file()/highlight_string()). (Andreas Ferber) diff --git a/Zend/tests/bug67368.phpt b/Zend/tests/bug67368.phpt new file mode 100644 index 0000000000..c92e994b94 --- /dev/null +++ b/Zend/tests/bug67368.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #67368 (Memory leak with immediately dereferenced array in class constant) +--INI-- +report_memleaks=1 +--FILE-- + 3]["bar"]; +} +echo "okey"; +--EXPECTF-- +okey diff --git a/Zend/zend_ast.c b/Zend/zend_ast.c index 583a52321b..12f9405523 100644 --- a/Zend/zend_ast.c +++ b/Zend/zend_ast.c @@ -328,8 +328,7 @@ ZEND_API void zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *s { zval *tmp; zend_fetch_dimension_by_zval(&tmp, &op1, &op2 TSRMLS_CC); - *result = *tmp; - efree(tmp); + ZVAL_ZVAL(result, tmp, 1, 1); } zval_dtor(&op1); zval_dtor(&op2); -- 2.40.0