]> granicus.if.org Git - php/commitdiff
Fixed reference counting
authorDmitry Stogov <dmitry@zend.com>
Wed, 9 Apr 2014 14:11:18 +0000 (18:11 +0400)
committerDmitry Stogov <dmitry@zend.com>
Wed, 9 Apr 2014 14:11:18 +0000 (18:11 +0400)
ext/standard/proc_open.c

index a72184c7df672e08b793c897c68e3c3d2c78688a..fd3e0c293769a9ec8905f20492a7b560650fcf94 100644 (file)
@@ -216,7 +216,9 @@ static void proc_open_rsrc_dtor(zend_resource *rsrc TSRMLS_DC)
        /* Close all handles to avoid a deadlock */
        for (i = 0; i < proc->npipes; i++) {
                if (proc->pipes[i] != 0) {
-                       zend_list_delete(proc->pipes[i]);
+                       if (--GC_REFCOUNT(proc->pipes[i]) <= 0) {
+                               zend_list_delete(proc->pipes[i]);
+                       }
                        proc->pipes[i] = 0;
                }
        }