]> granicus.if.org Git - php/commitdiff
Fixed memleak while sending IS_REFERENCE
authorXinchen Hui <laruence@gmail.com>
Sun, 9 Mar 2014 03:43:47 +0000 (11:43 +0800)
committerXinchen Hui <laruence@gmail.com>
Sun, 9 Mar 2014 03:48:09 +0000 (11:48 +0800)
Zend/zend_execute_API.c

index 0b632b05e480cd0908eb0e972855ea50da8e9188..8faba97fc784bc2341e113f8ceb18f3175d26c31 100644 (file)
@@ -858,8 +858,10 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
 
                                zval_copy_ctor(&fci->params[i]);
                        } else if (!Z_ISREF(fci->params[i])) {
+                               if (Z_REFCOUNTED(fci->params[i])) {
+                                       Z_ADDREF(fci->params[i]);
+                               }
                                ZVAL_NEW_REF(&fci->params[i], &fci->params[i]);
-                               Z_ADDREF(fci->params[i]);
                        } else if (Z_REFCOUNTED(fci->params[i])) {
                                Z_ADDREF(fci->params[i]);
                        }