summaryrefslogtreecommitdiff
path: root/sapi/cli/php_cli_server.c
diff options
context:
space:
mode:
authornil0x42 <nil0x42@users.noreply.github.com>2014-07-11 19:48:03 +0200
committerStanislav Malyshev <stas@php.net>2014-11-30 22:42:30 -0800
commit2534671f0be23b4bf93f0d726684895af77f39e0 (patch)
treee62997e0a4a9c88cbaaeaa21144a155687c560d5 /sapi/cli/php_cli_server.c
parent4ba828652bac764988a9cbd726f92d245674dbca (diff)
downloadphp-git-2534671f0be23b4bf93f0d726684895af77f39e0.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.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c
index 49680cede4..a0a9052f8a 100644
--- a/sapi/cli/php_cli_server.c
+++ b/sapi/cli/php_cli_server.c
@@ -2233,7 +2233,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') {
@@ -2249,7 +2249,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;
}
}