Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix bug #78323: Code 0 is returned on invalid options
This commit is contained in:
Nikita Popov 2020-01-27 13:32:29 +01:00
commit 1cccbb8ff1
11 changed files with 177 additions and 5 deletions

View file

@ -2282,6 +2282,7 @@ parent_loop_end:
break;
case 'h':
case '?':
case PHP_GETOPT_INVALID_ARG:
if (request) {
fcgi_destroy_request(request);
}
@ -2291,6 +2292,9 @@ parent_loop_end:
php_cgi_usage(argv[0]);
php_output_end_all();
exit_status = 0;
if (c == PHP_GETOPT_INVALID_ARG) {
exit_status = 1;
}
goto out;
}
}

View file

@ -0,0 +1,41 @@
--TEST--
Bug #78323 Test exit code and error message for invalid parameters
--SKIPIF--
<?php include "skipif.inc"; ?>
--FILE--
<?php
include "include.inc";
$php = get_cgi_path();
reset_env_vars();
// no argument for option
ob_start();
passthru("$php --memory-limit=1G 2>&1", $exitCode);
$output = ob_get_contents();
ob_end_clean();
$lines = preg_split('/\R/', $output);
echo $lines[0], "\n",
$lines[1], "\n",
"Done: $exitCode\n\n";
// Successful execution
ob_start();
passthru("$php -dmemory-limit=1G -v", $exitCode);
$output = ob_get_contents();
ob_end_clean();
$lines = preg_split('/\R/', $output);
echo $lines[0], "\n",
"Done: $exitCode\n";
?>
--EXPECTF--
Error in argument 1, char 1: no argument for option -
Usage: %s
Done: 1
PHP %s
Done: 0