diff options
author | nil0x42 <nil0x42@users.noreply.github.com> | 2014-07-11 19:48:03 +0200 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2014-11-30 22:42:12 -0800 |
commit | 2a73d56ef9e1a4ca8cbc9521e98c64a3716bbb4c (patch) | |
tree | 894a46377d7138a159891a2318ced6214a88cac6 /sapi/cli/php_cli_server.c | |
parent | cb1a297bf48bd1ef1183b25f046659aaf376688a (diff) | |
download | php-git-2a73d56ef9e1a4ca8cbc9521e98c64a3716bbb4c.tar.gz |
Fix php cli (-S option) inconsistent port parsing
Add port range verification of listening port with -S option for the php cli.
This fixes inconsistent listening port due to unverified cast from long to short
with htons(3).
Diffstat (limited to 'sapi/cli/php_cli_server.c')
-rw-r--r-- | sapi/cli/php_cli_server.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index f333addafd..f7f1c2bae0 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -2256,7 +2256,7 @@ static int php_cli_server_ctor(php_cli_server *server, const char *addr, const c *p++ = '\0'; if (*p == ':') { port = strtol(p + 1, &p, 10); - if (port <= 0) { + if (port <= 0 || port > 65535) { p = NULL; } } else if (*p != '\0') { @@ -2272,7 +2272,7 @@ static int php_cli_server_ctor(php_cli_server *server, const char *addr, const c if (p) { *p++ = '\0'; port = strtol(p, &p, 10); - if (port <= 0) { + if (port <= 0 || port > 65535) { p = NULL; } } |