File tree Expand file tree Collapse file tree 2 files changed +23
-0
lines changed Expand file tree Collapse file tree 2 files changed +23
-0
lines changed Original file line number Diff line number Diff line change @@ -1173,6 +1173,7 @@ PHP_FUNCTION(proc_open)
1173
1173
1174
1174
descriptors [ndesc ].index = (int )nindex ;
1175
1175
1176
+ ZVAL_DEREF (descitem );
1176
1177
if (Z_TYPE_P (descitem ) == IS_RESOURCE ) {
1177
1178
if (set_proc_descriptor_from_resource (descitem , & descriptors [ndesc ], ndesc ) == FAILURE ) {
1178
1179
goto exit_fail ;
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ GH-12655 (proc_open(): Argument #2 ($descriptor_spec) must only contain arrays and streams [Descriptor item must be either an array or a File-Handle])
3
+ --FILE--
4
+ <?php
5
+
6
+ $ descriptor_spec = [
7
+ 0 => [ "pipe " , "r " ], // stdin is a pipe that the child will read from
8
+ 1 => [ "pipe " , "w " ], // stdout is a pipe that the child will write to
9
+ 2 => [ "pipe " , "w " ], // stderr is a file to write to
10
+ ];
11
+
12
+ foreach ( $ descriptor_spec as $ fd => &$ d )
13
+ {
14
+ // don't do anything, just the fact that we used "&$d" will sink the ship!
15
+ }
16
+
17
+ $ proc = proc_open (PHP_BINARY , $ descriptor_spec , $ pipes );
18
+ echo $ proc === false ? "FAILED \n" : "SUCCEEDED \n" ;
19
+
20
+ ?>
21
+ --EXPECT--
22
+ SUCCEEDED
You can’t perform that action at this time.
0 commit comments