pierrick Thu, 17 Mar 2011 18:02:58 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=309352
Log: Fixed bug #54180 (parse_url() incorrectly parses path when ? in fragment) Bug: http://bugs.php.net/54180 (Closed) parse_url() incorrectly parses path when ? in fragment Changed paths: U php/php-src/branches/PHP_5_3/NEWS A php/php-src/branches/PHP_5_3/ext/standard/tests/url/bug54180.phpt U php/php-src/branches/PHP_5_3/ext/standard/url.c Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2011-03-17 16:20:19 UTC (rev 309351) +++ php/php-src/branches/PHP_5_3/NEWS 2011-03-17 18:02:58 UTC (rev 309352) @@ -5,7 +5,11 @@ - Zend Engine: . Fixed bug #54262 (Crash when assigning value to a dimension in a non-array). (Dmitry) - + +- Core: + . Fixed bug #54180 (parse_url() incorrectly parses path when ? in fragment). + (tomas dot brastavicius at quantum dot lt, Pierrick) + - DBA extension: . Fixed bug #54242 (dba_insert returns true if key already exists). (Felipe) Added: php/php-src/branches/PHP_5_3/ext/standard/tests/url/bug54180.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/url/bug54180.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/url/bug54180.phpt 2011-03-17 18:02:58 UTC (rev 309352) @@ -0,0 +1,32 @@ +--TEST-- +Bug #54180 (parse_url() incorrectly parses path when ? in fragment) +--FILE-- +<?php + +var_dump(parse_url("http://example.com/path/script.html?t=1#fragment?data")); +var_dump(parse_url("http://example.com/path/script.html#fragment?data")); + +?> +--EXPECTF-- +array(5) { + ["scheme"]=> + string(4) "http" + ["host"]=> + string(11) "example.com" + ["path"]=> + string(17) "/path/script.html" + ["query"]=> + string(3) "t=1" + ["fragment"]=> + string(13) "fragment?data" +} +array(4) { + ["scheme"]=> + string(4) "http" + ["host"]=> + string(11) "example.com" + ["path"]=> + string(17) "/path/script.html" + ["fragment"]=> + string(13) "fragment?data" +} Modified: php/php-src/branches/PHP_5_3/ext/standard/url.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/url.c 2011-03-17 16:20:19 UTC (rev 309351) +++ php/php-src/branches/PHP_5_3/ext/standard/url.c 2011-03-17 18:02:58 UTC (rev 309352) @@ -316,6 +316,10 @@ pp = strchr(s, '#'); if (pp && pp < p) { + if (pp - s) { + ret->path = estrndup(s, (pp-s)); + php_replace_controlchars_ex(ret->path, (pp - s)); + } p = pp; goto label_parse; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php