Re: com php-src: Fix bug #73192: ext/standard/tests/url/bug73192.phpt ext/standard/tests/url/parse_url_basic_001.phpt
ext/standard/tests/url/parse_url_basic_002.phpt ext/standard/tests/url/parse_url_basic_003.phpt ext/standard/tests/url/parse_url_basic_004.phpt
ext/standard/tests/url/parse_url_basic_005.phpt ext/standard/tests/url/parse_url_basic_006.phpt ext/standard/tests/url/parse_url_basic_007.phpt
ext/standard/tests/url/parse_url_basic_008.phpt

From: Date: Thu, 10 Nov 2016 08:56:58 +0000
Subject: Re: com php-src: Fix bug #73192: ext/standard/tests/url/bug73192.phpt ext/standard/tests/url/parse_url_basic_001.phpt
ext/standard/tests/url/parse_url_basic_002.phpt ext/standard/tests/url/parse_url_basic_003.phpt ext/standard/tests/url/parse_url_basic_004.phpt
ext/standard/tests/url/parse_url_basic_005.phpt ext/standard/tests/url/parse_url_basic_006.phpt ext/standard/tests/url/parse_url_basic_007.phpt
ext/standard/tests/url/parse_url_basic_008.phpt
References: 1  Groups: php.cvs 
Request: Send a blank email to php-cvs+get-95481@lists.php.net to get a copy of this message
Le 08/10/2016 à 01:04, Nikita Popov a écrit : > Commit: b061fa909de77085d3822a89ab901b934d0362c4 > Author: Nikita Popov <nikic@php.net> Sat, 8 Oct 2016 01:04:22 +0200 > Parents: bc3a0b82b82e54dabe688dcc37f8ada92771da0f > Branches: PHP-5.6 PHP-7.0 PHP-7.1 master > > Link: > http://git.php.net/?p=php-src.git;a=commitdiff;h=b061fa909de77085d3822a89ab901b934d0362c4 > > Log: > Fix bug #73192 Please notice that this change breaks (at least) pecl/ssh2 extension. Having to fix tests should have be an alarm... Remi. > > Bugs: > https://bugs.php.net/73192 > > Changed paths: > A ext/standard/tests/url/bug73192.phpt > M ext/standard/tests/url/parse_url_basic_001.phpt > M ext/standard/tests/url/parse_url_basic_002.phpt > M ext/standard/tests/url/parse_url_basic_003.phpt > M ext/standard/tests/url/parse_url_basic_004.phpt > M ext/standard/tests/url/parse_url_basic_005.phpt > M ext/standard/tests/url/parse_url_basic_006.phpt > M ext/standard/tests/url/parse_url_basic_007.phpt > M ext/standard/tests/url/parse_url_basic_008.phpt > M ext/standard/tests/url/parse_url_basic_009.phpt > M ext/standard/url.c > > > Diff: > diff --git a/ext/standard/tests/url/bug73192.phpt b/ext/standard/tests/url/bug73192.phpt > new file mode 100644 > index 0000000..6ecb477 > --- /dev/null > +++ b/ext/standard/tests/url/bug73192.phpt > @@ -0,0 +1,30 @@ > +--TEST-- > +Bug #73192: parse_url return wrong hostname > +--FILE-- > +<?php > + > > +var_dump(parse_url("http://example.com:80#@google.com/")); > > +var_dump(parse_url("http://example.com:80?@google.com/")); > + > +?> > +--EXPECT-- > +array(4) { > + ["scheme"]=> > + string(4) "http" > + ["host"]=> > + string(11) "example.com" > + ["port"]=> > + int(80) > + ["fragment"]=> > + string(12) "@google.com/" > +} > +array(4) { > + ["scheme"]=> > + string(4) "http" > + ["host"]=> > + string(11) "example.com" > + ["port"]=> > + int(80) > + ["query"]=> > + string(12) "@google.com/" > +} > diff --git a/ext/standard/tests/url/parse_url_basic_001.phpt > b/ext/standard/tests/url/parse_url_basic_001.phpt > index 0708691..e468066 100644 > --- a/ext/standard/tests/url/parse_url_basic_001.phpt > +++ b/ext/standard/tests/url/parse_url_basic_001.phpt > @@ -763,25 +763,9 @@ echo "Done"; > int(6) > } > > ---> http://?:/: array(3) { > - ["scheme"]=> > - string(4) "http" > - ["host"]=> > - string(1) "?" > - ["path"]=> > - string(1) "/" > -} > +--> http://?:/: bool(false) > > ---> http://@?:/: array(4) { > - ["scheme"]=> > - string(4) "http" > - ["host"]=> > - string(1) "?" > - ["user"]=> > - string(0) "" > - ["path"]=> > - string(1) "/" > -} > +--> http://@?:/: bool(false) > > --> file:///:: array(2) { > ["scheme"]=> > diff --git a/ext/standard/tests/url/parse_url_basic_002.phpt > b/ext/standard/tests/url/parse_url_basic_002.phpt > index c05d1f4..f222ffc 100644 > --- a/ext/standard/tests/url/parse_url_basic_002.phpt > +++ b/ext/standard/tests/url/parse_url_basic_002.phpt > @@ -98,8 +98,8 @@ echo "Done"; > --> http://::? : string(4) "http" > --> http://::# : string(4) "http" > --> x://::6.5 : string(1) "x" > ---> http://?:/ : string(4) "http" > ---> http://@?:/ : string(4) "http" > +--> http://?:/ : bool(false) > +--> http://@?:/ : bool(false) > --> file:///: : string(4) "file" > --> file:///a:/ : string(4) "file" > --> file:///ab:/ : string(4) "file" > diff --git a/ext/standard/tests/url/parse_url_basic_003.phpt > b/ext/standard/tests/url/parse_url_basic_003.phpt > index 88eda50..70dc4bb 100644 > --- a/ext/standard/tests/url/parse_url_basic_003.phpt > +++ b/ext/standard/tests/url/parse_url_basic_003.phpt > @@ -97,8 +97,8 @@ echo "Done"; > --> http://::? : string(1) ":" > --> http://::# : string(1) ":" > --> x://::6.5 : string(1) ":" > ---> http://?:/ : string(1) "?" > ---> http://@?:/ : string(1) "?" > +--> http://?:/ : bool(false) > +--> http://@?:/ : bool(false) > --> file:///: : NULL > --> file:///a:/ : NULL > --> file:///ab:/ : NULL > diff --git a/ext/standard/tests/url/parse_url_basic_004.phpt > b/ext/standard/tests/url/parse_url_basic_004.phpt > index e3b9abd..7ddddaf 100644 > --- a/ext/standard/tests/url/parse_url_basic_004.phpt > +++ b/ext/standard/tests/url/parse_url_basic_004.phpt > @@ -97,8 +97,8 @@ echo "Done"; > --> http://::? : NULL > --> http://::# : NULL > --> x://::6.5 : int(6) > ---> http://?:/ : NULL > ---> http://@?:/ : NULL > +--> http://?:/ : bool(false) > +--> http://@?:/ : bool(false) > --> file:///: : NULL > --> file:///a:/ : NULL > --> file:///ab:/ : NULL > diff --git a/ext/standard/tests/url/parse_url_basic_005.phpt > b/ext/standard/tests/url/parse_url_basic_005.phpt > index 5b2cb98..b2ca06f 100644 > --- a/ext/standard/tests/url/parse_url_basic_005.phpt > +++ b/ext/standard/tests/url/parse_url_basic_005.phpt > @@ -97,8 +97,8 @@ echo "Done"; > --> http://::? : NULL > --> http://::# : NULL > --> x://::6.5 : NULL > ---> http://?:/ : NULL > ---> http://@?:/ : string(0) "" > +--> http://?:/ : bool(false) > +--> http://@?:/ : bool(false) > --> file:///: : NULL > --> file:///a:/ : NULL > --> file:///ab:/ : NULL > diff --git a/ext/standard/tests/url/parse_url_basic_006.phpt > b/ext/standard/tests/url/parse_url_basic_006.phpt > index 79af6b8..f0c251b 100644 > --- a/ext/standard/tests/url/parse_url_basic_006.phpt > +++ b/ext/standard/tests/url/parse_url_basic_006.phpt > @@ -97,8 +97,8 @@ echo "Done"; > --> http://::? : NULL > --> http://::# : NULL > --> x://::6.5 : NULL > ---> http://?:/ : NULL > ---> http://@?:/ : NULL > +--> http://?:/ : bool(false) > +--> http://@?:/ : bool(false) > --> file:///: : NULL > --> file:///a:/ : NULL > --> file:///ab:/ : NULL > diff --git a/ext/standard/tests/url/parse_url_basic_007.phpt > b/ext/standard/tests/url/parse_url_basic_007.phpt > index 8e04553..1b362bb 100644 > --- a/ext/standard/tests/url/parse_url_basic_007.phpt > +++ b/ext/standard/tests/url/parse_url_basic_007.phpt > @@ -97,8 +97,8 @@ echo "Done"; > --> http://::? : NULL > --> http://::# : NULL > --> x://::6.5 : NULL > ---> http://?:/ : string(1) "/" > ---> http://@?:/ : string(1) "/" > +--> http://?:/ : bool(false) > +--> http://@?:/ : bool(false) > --> file:///: : string(2) "/:" > --> file:///a:/ : string(3) "a:/" > --> file:///ab:/ : string(5) "/ab:/" > diff --git a/ext/standard/tests/url/parse_url_basic_008.phpt > b/ext/standard/tests/url/parse_url_basic_008.phpt > index 0c77221..1271f38 100644 > --- a/ext/standard/tests/url/parse_url_basic_008.phpt > +++ b/ext/standard/tests/url/parse_url_basic_008.phpt > @@ -97,8 +97,8 @@ echo "Done"; > --> http://::? : NULL > --> http://::# : NULL > --> x://::6.5 : NULL > ---> http://?:/ : NULL > ---> http://@?:/ : NULL > +--> http://?:/ : bool(false) > +--> http://@?:/ : bool(false) > --> file:///: : NULL > --> file:///a:/ : NULL > --> file:///ab:/ : NULL > diff --git a/ext/standard/tests/url/parse_url_basic_009.phpt > b/ext/standard/tests/url/parse_url_basic_009.phpt > index 487b271..72f172a 100644 > --- a/ext/standard/tests/url/parse_url_basic_009.phpt > +++ b/ext/standard/tests/url/parse_url_basic_009.phpt > @@ -97,8 +97,8 @@ echo "Done"; > --> http://::? : NULL > --> http://::# : NULL > --> x://::6.5 : NULL > ---> http://?:/ : NULL > ---> http://@?:/ : NULL > +--> http://?:/ : bool(false) > +--> http://@?:/ : bool(false) > --> file:///: : NULL > --> file:///a:/ : NULL > --> file:///ab:/ : NULL > diff --git a/ext/standard/url.c b/ext/standard/url.c > index dd861a5..9627184 100644 > --- a/ext/standard/url.c > +++ b/ext/standard/url.c > @@ -217,28 +217,7 @@ PHPAPI php_url *php_url_parse_ex(char const *str, int length) > goto nohost; > } > > - e = ue; > - > - if (!(p = memchr(s, '/', (ue - s)))) { > - char *query, *fragment; > - > - query = memchr(s, '?', (ue - s)); > - fragment = memchr(s, '#', (ue - s)); > - > - if (query && fragment) { > - if (query > fragment) { > - e = fragment; > - } else { > - e = query; > - } > - } else if (query) { > - e = query; > - } else if (fragment) { > - e = fragment; > - } > - } else { > - e = p; > - } > + e = s + strcspn(s, "/?#"); > > /* check for login and password */ > if ((p = zend_memrchr(s, '@', (e-s)))) { > >

« previous php.cvs (#95481) next »