summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2014-05-09 00:24:01 +0200
committerNikita Popov <nikic@php.net>2014-05-09 00:24:01 +0200
commitb57d558d56ba1bb5905f22ebef86d10ad88d272b (patch)
treeb70eb505330b0c9a12ff1df7f67f5738be10c420
parent2a31934a1a49b631370cf472e47eca6f8aa54971 (diff)
downloadphp-git-b57d558d56ba1bb5905f22ebef86d10ad88d272b.tar.gz
Fix proc_open resource destruction
-rw-r--r--ext/standard/proc_open.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/ext/standard/proc_open.c b/ext/standard/proc_open.c
index 2fb5553cde..35ea3d1b74 100644
--- a/ext/standard/proc_open.c
+++ b/ext/standard/proc_open.c
@@ -222,7 +222,8 @@ 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]);
+ GC_REFCOUNT(proc->pipes[i])--;
+ zend_list_close(proc->pipes[i]);
proc->pipes[i] = 0;
}
}
@@ -318,7 +319,7 @@ PHP_FUNCTION(proc_close)
ZEND_FETCH_RESOURCE(proc, struct php_process_handle *, zproc, -1, "process", le_proc_open);
FG(pclose_wait) = 1;
- zend_list_delete(Z_RES_P(zproc));
+ zend_list_close(Z_RES_P(zproc));
FG(pclose_wait) = 0;
RETURN_LONG(FG(pclose_ret));
}