]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-5.5' into PHP-5.6
authorAdam Harvey <aharvey@php.net>
Tue, 6 Jan 2015 01:27:37 +0000 (01:27 +0000)
committerAdam Harvey <aharvey@php.net>
Tue, 6 Jan 2015 01:27:37 +0000 (01:27 +0000)
* PHP-5.5:
  Handle NULL strings in sapi_cli_server_register_variable().
  Allow CLI server test scripts to specify the name of the router file.

Conflicts:
sapi/cli/tests/php_cli_server.inc

1  2 
NEWS
sapi/cli/php_cli_server.c
sapi/cli/tests/bug68745.phpt
sapi/cli/tests/php_cli_server.inc
sapi/cli/tests/php_cli_server_009.phpt
sapi/cli/tests/php_cli_server_010.phpt

diff --cc NEWS
Simple merge
Simple merge
index 0000000000000000000000000000000000000000,f52e6bcc746054246d482cd43b99ca76c699383c..733d7d09006a8e5d839fd35892aea062b17da603
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,34 +1,34 @@@
 -Content-type: text/html
+ --TEST--
+ Bug #68745 (Invalid HTTP requests make web server segfault)
+ --SKIPIF--
+ <?php
+ include "skipif.inc";
+ ?>
+ --FILE--
+ <?php
+ include "php_cli_server.inc";
+ php_cli_server_start('var_dump(count($_SERVER));', 'not-index.php');
+ list($host, $port) = explode(':', PHP_CLI_SERVER_ADDRESS);
+ $port = intval($port)?:80;
+ $fp = fsockopen($host, $port, $errno, $errstr, 0.5);
+ if (!$fp) {
+   die("connect failed");
+ }
+ if(fwrite($fp, "GET www.example.com:80 HTTP/1.1\r\n\r\n")) {
+     while (!feof($fp)) {
+         echo fgets($fp);
+     }
+ }
+ fclose($fp);
+ ?>
+ --EXPECTF--
+ HTTP/1.1 200 OK
+ Connection: close
+ X-Powered-By: %s
++Content-type: text/html; charset=UTF-8
+ int(%d)
index 77a79e0f0493e327fec46620ad54a5bd4b88c6a7,c7222b4f254206b6760c171e4476fd4797725847..6b1e90c4dc16b91b64d3c0f51addb3825b82e4f7
@@@ -3,13 -3,12 +3,12 @@@ define ("PHP_CLI_SERVER_HOSTNAME", "loc
  define ("PHP_CLI_SERVER_PORT", 8964);
  define ("PHP_CLI_SERVER_ADDRESS", PHP_CLI_SERVER_HOSTNAME.":".PHP_CLI_SERVER_PORT);
  
- function php_cli_server_start($code = 'echo "Hello world";', $no_router = FALSE, $cmd_args = null) {
 -function php_cli_server_start($code = 'echo "Hello world";', $router = 'index.php') {
++function php_cli_server_start($code = 'echo "Hello world";', $router = 'index.php', $cmd_args = null) {
        $php_executable = getenv('TEST_PHP_EXECUTABLE');
        $doc_root = __DIR__;
-       $router = "index.php";
  
        if ($code) {
-               file_put_contents($doc_root . '/' . $router, '<?php ' . $code . ' ?>');
+               file_put_contents($doc_root . '/' . ($router ?: 'index.php'), '<?php ' . $code . ' ?>');
        }
  
        $descriptorspec = array(
        );
  
        if (substr(PHP_OS, 0, 3) == 'WIN') {
 -              $cmd = "{$php_executable} -t {$doc_root} -n -S " . PHP_CLI_SERVER_ADDRESS;
 +              $cmd = "{$php_executable} -t {$doc_root} -n {$cmd_args} -S " . PHP_CLI_SERVER_ADDRESS;
-               if (!$no_router) {
+               if (!is_null($router)) {
                        $cmd .= " {$router}";
                }
  
                $handle = proc_open(addslashes($cmd), $descriptorspec, $pipes, $doc_root, NULL, array("bypass_shell" => true,  "suppress_errors" => true));
        } else {
 -              $cmd = "exec {$php_executable} -t {$doc_root} -n -S " . PHP_CLI_SERVER_ADDRESS;
 +              $cmd = "exec {$php_executable} -t {$doc_root} -n {$cmd_args} -S " . PHP_CLI_SERVER_ADDRESS;
-               if (!$no_router) {
+               if (!is_null($router)) {
                        $cmd .= " {$router}";
                }
                $cmd .= " 2>/dev/null";