summaryrefslogtreecommitdiff
path: root/sapi
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2017-05-17 23:21:18 +0800
committerXinchen Hui <laruence@gmail.com>2017-05-17 23:21:18 +0800
commitef09bc0645a3dfdc82a9fc162fe9b247c735e305 (patch)
tree3ce74ae087bc6d58d6b040768f8c011f5099d4e5 /sapi
parente347b2ded6c9125c31e499a62c872d5cd600cae5 (diff)
downloadphp-git-ef09bc0645a3dfdc82a9fc162fe9b247c735e305.tar.gz
Added test for bug #74600
Diffstat (limited to 'sapi')
-rw-r--r--sapi/cli/tests/bug74600.phpt34
1 files changed, 34 insertions, 0 deletions
diff --git a/sapi/cli/tests/bug74600.phpt b/sapi/cli/tests/bug74600.phpt
new file mode 100644
index 0000000000..bdda12ee19
--- /dev/null
+++ b/sapi/cli/tests/bug74600.phpt
@@ -0,0 +1,34 @@
+--TEST--
+Bug #74600 (crash (SIGSEGV) in _zend_hash_add_or_update_i)
+--SKIPIF--
+<?php
+if (!getenv("TEST_PHP_EXECUTABLE")) die("skip TEST_PHP_EXECUTABLE not set");
+if (substr(PHP_OS, 0, 3) == "WIN") die("skip non windows test");
+?>
+--FILE--
+<?php
+$php = getenv("TEST_PHP_EXECUTABLE");
+$ini_file = __DIR__ . "/bug74600.ini";
+file_put_contents($ini_file, <<<INI
+[PHP]\n;\rs=\000\000=\n;\r[PATH\000]\000\376 =\n
+INI
+);
+$desc = array(
+ 0 => array("pipe", "r"),
+ 1 => array("pipe", "w"),
+ 2 => array("pipe", "w"),
+);
+$pipes = array();
+$proc = proc_open("$php -c $ini_file -r 'echo \"okey\";'", $desc, $pipes);
+if (!$proc) {
+ exit(1);
+}
+var_dump(stream_get_contents($pipes[1]));
+var_dump(stream_get_contents($pipes[2]));
+
+proc_terminate($proc);
+proc_close($proc);
+?>
+--EXPECTF--
+string(4) "okey"
+string(0) ""