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