com php-src: Fixed bug #64604: NEWS ext/standard/tests/url/bug64604.phpt ext/standard/url.c

From: Date: Mon, 14 Apr 2014 01:37:40 +0000
Subject: com php-src: Fixed bug #64604: NEWS ext/standard/tests/url/bug64604.phpt ext/standard/url.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-76861@lists.php.net to get a copy of this message
Commit: b05c088a3abf8e4c6fb6e40418423a9e2dd3d929 Author: Ingo Walz <ingo.walz@googlemail.com> Sat, 23 Nov 2013 02:31:23 +0100 Committer: Stanislav Malyshev <stas@php.net> Sun, 13 Apr 2014 18:37:40 -0700 Parents: 5558d0db9b88a1975b40d4beb5db863c7d87e3c0 Branches: PHP-5.4 PHP-5.5 PHP-5.6 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=b05c088a3abf8e4c6fb6e40418423a9e2dd3d929 Log: Fixed bug #64604 Bugs: https://bugs.php.net/64604 Changed paths: M NEWS A ext/standard/tests/url/bug64604.phpt M ext/standard/url.c Diff: diff --git a/NEWS b/NEWS index c6522ae..d04e961 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,8 @@ 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 #66182 (exit in stream filter produces segfault). (Mike) . Fixed bug #66736 (fpassthru broken). (Mike) . Fixed bug #67024 (getimagesize should recognize BMP files with negative diff --git a/ext/standard/tests/url/bug64604.phpt b/ext/standard/tests/url/bug64604.phpt new file mode 100644 index 0000000..bbc3cb9 --- /dev/null +++ b/ext/standard/tests/url/bug64604.phpt @@ -0,0 +1,40 @@ +--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" +} diff --git a/ext/standard/url.c b/ext/standard/url.c index d8271a1..16237e6 100644 --- a/ext/standard/url.c +++ b/ext/standard/url.c @@ -181,6 +181,10 @@ 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++; } @@ -201,10 +205,6 @@ 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;

« previous php.cvs (#76861) next »