summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2010-09-30 14:11:51 +0000
committerDmitry Stogov <dmitry@php.net>2010-09-30 14:11:51 +0000
commit53d3320951d731c15ae9adfecb4881e94c230e37 (patch)
treeb7e6356614ef064ce35355d65e4c9ce26d0138b4 /Zend/zend_execute.c
parent81faf213c3ae85de2fd190fe2c6baba1310ca347 (diff)
downloadphp-git-53d3320951d731c15ae9adfecb4881e94c230e37.tar.gz
Prevented crash in GC because of incorrect reference counting
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index fc91fbc926..f21ccc1545 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -919,9 +919,9 @@ static inline zval* zend_assign_to_variable(zval **variable_ptr_ptr, zval *value
GC_ZVAL_CHECK_POSSIBLE_ROOT(variable_ptr);
if (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0) {
ALLOC_ZVAL(variable_ptr);
+ *variable_ptr_ptr = variable_ptr;
INIT_PZVAL_COPY(variable_ptr, value);
zval_copy_ctor(variable_ptr);
- *variable_ptr_ptr = variable_ptr;
return variable_ptr;
} else {
*variable_ptr_ptr = value;