1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
--TEST--
proc_open with bypass_shell subprocess parameter passing
--SKIPIF--
<?php # vim:syn=php
if (substr(PHP_OS, 0, 3) != 'WIN') die("skip Valid only on Windows");
if (php_sapi_name() != "cli") die('skip CLI only test');
if (!function_exists("proc_open")) echo "skip proc_open() is not available";
?>
--FILE--
<?php
$php = PHP_BINARY;
$f = dirname(__FILE__) . DIRECTORY_SEPARATOR . "proc_only_mb0.php";
file_put_contents($f,'<?php var_dump($argv); ?>');
$ds = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("pipe", "w")
);
$p = proc_open(
"$php -n $f テストマルチバイト・パス füße карамба",
$ds,
$pipes,
NULL,
NULL,
array("bypass_shell" => true)
);
echo fread($pipes[1], 1024);
proc_close($p);
?>
==DONE==
--EXPECTF--
array(4) {
[0]=>
string(%d) "%sproc_only_mb0.php"
[1]=>
string(36) "テストマルチバイト・パス"
[2]=>
string(6) "füße"
[3]=>
string(14) "карамба"
}
==DONE==
|