cvs: ZendEngine2 / zend_execute.c

From: Date: Wed, 11 Feb 2004 19:12:17 +0000
Subject: cvs: ZendEngine2 / zend_execute.c
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-2358@lists.php.net to get a copy of this message
zeev Wed Feb 11 14:12:17 2004 EDT Modified files: /ZendEngine2 zend_execute.c Log: Fix leaks in assignments to overloaded objects http://cvs.php.net/diff.php/ZendEngine2/zend_execute.c?r1=1.608&r2=1.609&ty=u Index: ZendEngine2/zend_execute.c diff -u ZendEngine2/zend_execute.c:1.608 ZendEngine2/zend_execute.c:1.609 --- ZendEngine2/zend_execute.c:1.608 Wed Feb 11 11:28:46 2004 +++ ZendEngine2/zend_execute.c Wed Feb 11 14:12:16 2004 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.c,v 1.608 2004/02/11 16:28:46 zeev Exp $ */ +/* $Id: zend_execute.c,v 1.609 2004/02/11 19:12:16 zeev Exp $ */ #define ZEND_INTENSIVE_DEBUGGING 0 @@ -394,7 +394,17 @@ *value = *orig_value; value->is_ref = 0; value->refcount = 0; + } else if (value_op->op_type == IS_CONST) { + zval *orig_value = value; + + ALLOC_ZVAL(value); + *value = *orig_value; + value->is_ref = 0; + value->refcount = 0; + zval_copy_ctor(value); } + + value->refcount++; if (opcode == ZEND_ASSIGN_OBJ) { zval tmp; @@ -423,6 +433,7 @@ } Z_OBJ_HT_P(object)->write_dimension(object, property_name, value TSRMLS_CC); } + zval_ptr_dtor(&value); FREE_OP(Ts, op2, EG(free_op2)); if (result) {

« previous php.zend-engine.cvs (#2358) next »