]> granicus.if.org Git - php/commitdiff
Revert "Fixed bug #64604"
authorStanislav Malyshev <stas@php.net>
Fri, 25 Apr 2014 06:49:52 +0000 (23:49 -0700)
committerStanislav Malyshev <stas@php.net>
Fri, 25 Apr 2014 06:50:45 +0000 (23:50 -0700)
This reverts commit b05c088a3abf8e4c6fb6e40418423a9e2dd3d929.
Breaks parsing urls where query has : in it, like: /foo/bar?baz=goo:boo

NEWS
ext/standard/tests/url/bug64604.phpt [deleted file]
ext/standard/url.c

diff --git a/NEWS b/NEWS
index 6635a8e5522a91e12e47d8b32109eca6ed598d14..26a1791ddb5db75352e668db9c63f8f9b642b836 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -25,8 +25,6 @@ PHP                                                                        NEWS
   . Fixed bug #61019 (Out of memory on command stream_get_contents). (Mike)
   . Fixed bug #64330 (stream_socket_server() creates wrong Abstract Namespace 
     UNIX sockets). (Mike)
-  . Fixed bug #64604 (parse_url is inconsistent with specified port). 
-    (Ingo Walz)
   . Fixed bug #66171 (Symlinks and session handler allow open_basedir bypass).
     (Jann Horn, Stas)
   . Fixed bug #66182 (exit in stream filter produces segfault). (Mike)
diff --git a/ext/standard/tests/url/bug64604.phpt b/ext/standard/tests/url/bug64604.phpt
deleted file mode 100644 (file)
index bbc3cb9..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
---TEST--
-Bug #64604 parse_url is inconsistent with specified port
---FILE--
-<?php
-var_dump(parse_url('//localhost/path'));
-var_dump(parse_url('//localhost:80/path'));
-var_dump(parse_url('//localhost:/path'));
-var_dump(parse_url('http://localhost:80/path'));
-?>
---EXPECT--
-array(2) {
-  ["host"]=>
-  string(9) "localhost"
-  ["path"]=>
-  string(5) "/path"
-}
-array(3) {
-  ["host"]=>
-  string(9) "localhost"
-  ["port"]=>
-  int(80)
-  ["path"]=>
-  string(5) "/path"
-}
-array(2) {
-  ["host"]=>
-  string(9) "localhost"
-  ["path"]=>
-  string(5) "/path"
-}
-array(4) {
-  ["scheme"]=>
-  string(4) "http"
-  ["host"]=>
-  string(9) "localhost"
-  ["port"]=>
-  int(80)
-  ["path"]=>
-  string(5) "/path"
-}
index 16237e6599fd729fb38bbab3aca2c732cfc78cbc..d8271a18ed13c28d80a4aca203a9f0446c868060 100644 (file)
@@ -181,10 +181,6 @@ PHPAPI php_url *php_url_parse_ex(char const *str, int length)
                p = e + 1;
                pp = p;
 
-               if (*s == '/' && *(s+1) == '/') { /* relative-scheme URL */
-                       s += 2;
-               }
-
                while (pp-p < 6 && isdigit(*pp)) {
                        pp++;
                }
@@ -205,6 +201,10 @@ PHPAPI php_url *php_url_parse_ex(char const *str, int length)
                        STR_FREE(ret->scheme);
                        efree(ret);
                        return NULL;
+               } else if (*s == '/' && *(s+1) == '/') { /* relative-scheme URL */
+                       s += 2;
+               } else {
+                       goto just_path;
                }
        } else if (*s == '/' && *(s+1) == '/') { /* relative-scheme URL */
                s += 2;