moriyoshi Wed, 20 Jul 2011 08:43:12 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=313466
Log:
- Better error handling.
Changed paths:
U php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
U php/php-src/trunk/sapi/cli/php_cli_server.c
Modified: php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c
===================================================================
--- php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c 2011-07-20
07:48:08 UTC (rev 313465)
+++ php/php-src/branches/PHP_5_4/sapi/cli/php_cli_server.c 2011-07-20
08:43:12 UTC (rev 313466)
@@ -1805,9 +1805,9 @@
int err = 0;
int port = 3000;
php_socket_t server_sock = SOCK_ERR;
+ char *p = NULL;
if (addr[0] == '[') {
- char *p;
host = pestrdup(addr + 1, 1);
if (!host) {
return FAILURE;
@@ -1817,27 +1817,32 @@
*p++ = '\0';
if (*p == ':') {
port = strtol(p + 1, &p, 10);
+ if (port <= 0) {
+ p = NULL;
+ }
} else if (*p != '\0') {
p = NULL;
}
}
- if (!p) {
- fprintf(stderr, "Invalid IPv6 address: %s\n", host);
- retval = FAILURE;
- goto out;
- }
} else {
- char *p;
host = pestrdup(addr, 1);
if (!host) {
return FAILURE;
}
- p = strrchr(host, ':');
+ p = strchr(host, ':');
if (p) {
*p++ = '\0';
port = strtol(p, &p, 10);
+ if (port <= 0) {
+ p = NULL;
+ }
}
}
+ if (!p) {
+ fprintf(stderr, "Invalid address: %s\n", addr);
+ retval = FAILURE;
+ goto out;
+ }
server_sock = php_network_listen_socket(host, &port, SOCK_STREAM,
&server->address_family, &server->socklen, &errstr TSRMLS_CC);
if (server_sock == SOCK_ERR) {
Modified: php/php-src/trunk/sapi/cli/php_cli_server.c
===================================================================
--- php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-20 07:48:08 UTC (rev
313465)
+++ php/php-src/trunk/sapi/cli/php_cli_server.c 2011-07-20 08:43:12 UTC (rev
313466)
@@ -1805,9 +1805,9 @@
int err = 0;
int port = 3000;
php_socket_t server_sock = SOCK_ERR;
+ char *p = NULL;
if (addr[0] == '[') {
- char *p;
host = pestrdup(addr + 1, 1);
if (!host) {
return FAILURE;
@@ -1817,27 +1817,32 @@
*p++ = '\0';
if (*p == ':') {
port = strtol(p + 1, &p, 10);
+ if (port <= 0) {
+ p = NULL;
+ }
} else if (*p != '\0') {
p = NULL;
}
}
- if (!p) {
- fprintf(stderr, "Invalid IPv6 address: %s\n", host);
- retval = FAILURE;
- goto out;
- }
} else {
- char *p;
host = pestrdup(addr, 1);
if (!host) {
return FAILURE;
}
- p = strrchr(host, ':');
+ p = strchr(host, ':');
if (p) {
*p++ = '\0';
port = strtol(p, &p, 10);
+ if (port <= 0) {
+ p = NULL;
+ }
}
}
+ if (!p) {
+ fprintf(stderr, "Invalid address: %s\n", addr);
+ retval = FAILURE;
+ goto out;
+ }
server_sock = php_network_listen_socket(host, &port, SOCK_STREAM,
&server->address_family, &server->socklen, &errstr TSRMLS_CC);
if (server_sock == SOCK_ERR) {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php