Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  Fixed bug #68917 (parse_url fails on some partial urls)
This commit is contained in:
Tjerk Meesters 2015-03-06 20:58:20 +08:00
commit 469b5a9584
3 changed files with 32 additions and 2 deletions

4
NEWS
View File

@ -6,6 +6,10 @@
. Fixed bugs #68853, #65137 (Buffered crypto stream data breaks IO polling . Fixed bugs #68853, #65137 (Buffered crypto stream data breaks IO polling
in stream_select() contexts) (Chris Wright) in stream_select() contexts) (Chris Wright)
- Core:
. Fixed bug #68917 (parse_url fails on some partial urls). (Wei Dai)
19 Mar 2015, PHP 5.6.7 19 Mar 2015, PHP 5.6.7
- Core: - Core:

View File

@ -0,0 +1,23 @@
--TEST--
Bug #68917 (parse_url fails on some partial urls)
--FILE--
<?php
print_r(parse_url('//example.org:81/hi?a=b#c=d'));
print_r(parse_url('//example.org/hi?a=b#c=d'));
?>
--EXPECT--
Array
(
[host] => example.org
[port] => 81
[path] => /hi
[query] => a=b
[fragment] => c=d
)
Array
(
[host] => example.org
[path] => /hi
[query] => a=b
[fragment] => c=d
)

View File

@ -192,6 +192,9 @@ PHPAPI php_url *php_url_parse_ex(char const *str, int length)
port = strtol(port_buf, NULL, 10); port = strtol(port_buf, NULL, 10);
if (port > 0 && port <= 65535) { if (port > 0 && port <= 65535) {
ret->port = (unsigned short) port; ret->port = (unsigned short) port;
if (*s == '/' && *(s + 1) == '/') { /* relative-scheme URL */
s += 2;
}
} else { } else {
STR_FREE(ret->scheme); STR_FREE(ret->scheme);
efree(ret); efree(ret);