]> granicus.if.org Git - php/commitdiff
Fixed memory leak
authorDmitry Stogov <dmitry@zend.com>
Thu, 27 Mar 2014 12:43:40 +0000 (16:43 +0400)
committerDmitry Stogov <dmitry@zend.com>
Thu, 27 Mar 2014 12:43:40 +0000 (16:43 +0400)
Zend/zend_object_handlers.c

index 3d821993af4bbd1b42701c6122c8b1e6995fbc44..45cc4f56e9f6900f865fbdf5588fbf53093189d3 100644 (file)
@@ -587,13 +587,13 @@ found:
                                                ZVAL_COPY_VALUE(&garbage, variable_ptr);
 
                                                /* if we assign referenced variable, we should separate it */
-                                               if (Z_REFCOUNTED_P(value)) {
-                                                       Z_ADDREF_P(value);
-                                                       if (Z_ISREF_P(value)) {
-                                                               SEPARATE_ZVAL(value);
+                                               ZVAL_COPY_VALUE(variable_ptr, value);
+                                               if (Z_REFCOUNTED_P(variable_ptr)) {
+                                                       Z_ADDREF_P(variable_ptr);
+                                                       if (Z_ISREF_P(variable_ptr)) {
+                                                               SEPARATE_ZVAL(variable_ptr);
                                                        }
                                                }
-                                               ZVAL_COPY_VALUE(variable_ptr, value);
                                                zval_ptr_dtor(&garbage);
                                        }
                                }