Oops,
please have a look at the correct diff :)

http://pastie.org/2138369

--- sapi/cli/php_cli_server.c.old       2011-06-29 09:08:28.971479778 +0200
+++ sapi/cli/php_cli_server.c   2011-06-28 19:43:23.123167815 +0200
@@ -1799,13 +1799,28 @@
        }

        {
-               char *p = strchr(host, ':');
-               if (p) {
+               char *p = strrchr(host, ':');
+               char *end = strchr(host, ']');
+               if (p && (end == NULL || p > end)) {
                        *p++ = '\0';
                        port = strtol(p, &p, 10);
+                       if (port < 0 || port > 65535) {
+                               printf(stderr, "Invalid built-in web-server 
addr:port argument\n");
+                               return FAILURE;
+                       }
                }
        }

+       if (*host == '[' && host[strlen(host)-1] == ']') {
+               char v6address[40];
+               int success = sscanf(host, "\[%39[^]]\]", v6address);
+               if (success != 1) {
+                       php_cli_server_logf("Failed to listen on %s:%d (reason: 
%s)"
TSRMLS_CC, host, port, errstr ? errstr: "?");
+                       return FAILURE;
+               }
+               host = pestrdup(v6address, 1);
+       }
+
        server_sock = php_network_listen_socket(host, &port, SOCK_STREAM,
&server->address_family, &server->socklen, &errstr TSRMLS_CC);
        if (server_sock == SOCK_ERR) {
                php_cli_server_logf("Failed to listen on %s:%d (reason: %s)"
TSRMLS_CC, host, port, errstr ? errstr: "?");


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to