]> granicus.if.org Git - php/commitdiff
Fixed possible memory leak
authorDmitry Stogov <dmitry@php.net>
Tue, 6 May 2008 16:59:38 +0000 (16:59 +0000)
committerDmitry Stogov <dmitry@php.net>
Tue, 6 May 2008 16:59:38 +0000 (16:59 +0000)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index df2d6e2665c637a0dcb293041cea780e93beaab5..6d6761f8a67c50a96add35bc9af93ea8ad8909af 100644 (file)
@@ -2568,7 +2568,7 @@ ZEND_VM_HANDLER(64, ZEND_RECV_INIT, ANY, CONST)
        zend_uint arg_num = Z_LVAL(opline->op1.u.constant);
        zend_free_op free_res;
        zval **param = zend_vm_stack_get_arg(arg_num TSRMLS_CC);
-       zval **var_ptr = get_zval_ptr_ptr(&opline->result, EX(Ts), &free_res, BP_VAR_W);;
+       zval **var_ptr;
 
        if (param == NULL) {
                ALLOC_ZVAL(assignment_value);
@@ -2586,6 +2586,7 @@ ZEND_VM_HANDLER(64, ZEND_RECV_INIT, ANY, CONST)
        }
 
        zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, assignment_value, opline->extended_value TSRMLS_CC);
+       var_ptr = get_zval_ptr_ptr(&opline->result, EX(Ts), &free_res, BP_VAR_W);
        Z_DELREF_PP(var_ptr);
        *var_ptr = assignment_value;
 
index 567493a3a0777f42d5a237b5c80d0083e1f1ed91..839fc93f5aaf0996c2ffedf6e746762e02192513 100644 (file)
@@ -667,7 +667,7 @@ static int ZEND_RECV_INIT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
        zend_uint arg_num = Z_LVAL(opline->op1.u.constant);
        zend_free_op free_res;
        zval **param = zend_vm_stack_get_arg(arg_num TSRMLS_CC);
-       zval **var_ptr = get_zval_ptr_ptr(&opline->result, EX(Ts), &free_res, BP_VAR_W);;
+       zval **var_ptr;
 
        if (param == NULL) {
                ALLOC_ZVAL(assignment_value);
@@ -685,6 +685,7 @@ static int ZEND_RECV_INIT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
        }
 
        zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, assignment_value, opline->extended_value TSRMLS_CC);
+       var_ptr = get_zval_ptr_ptr(&opline->result, EX(Ts), &free_res, BP_VAR_W);
        Z_DELREF_PP(var_ptr);
        *var_ptr = assignment_value;