pierrick Sun, 03 Apr 2011 07:18:27 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=309910
Log: Fixed bug #54454 (substr_compare incorrectly reports equality in some cases) Bug: http://bugs.php.net/54454 (Open) substr_compare incorrectly reports equality in some cases Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/standard/string.c A php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug54454.phpt U php/php-src/branches/PHP_5_3/ext/standard/tests/strings/substr_compare.phpt U php/php-src/trunk/ext/standard/string.c A php/php-src/trunk/ext/standard/tests/strings/bug54454.phpt U php/php-src/trunk/ext/standard/tests/strings/substr_compare.phpt Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2011-04-03 02:59:13 UTC (rev 309909) +++ php/php-src/branches/PHP_5_3/NEWS 2011-04-03 07:18:27 UTC (rev 309910) @@ -9,10 +9,13 @@ - Core: . Fixed a crash inside dtor for error handling. (Ilia) + . Fixed bug #54454 (substr_compare incorrectly reports equality in some + cases). (Pierrick) . Fixed bug #54180 (parse_url() incorrectly parses path when ? in fragment). (tomas dot brastavicius at quantum dot lt, Pierrick) - . Fixed bug #48465 (sys_get_temp_dir() possibly inconsistent when using - TMPDIR on Windows). (Pierre) + . Fixed bug #48465 (sys_get_temp_dir() possibly inconsistent when using + TMPDIR on Windows). (Pierre) + - cURL . Added CURLINFO_REDIRECT_URL support. (Daniel Stenberg, Pierre) Modified: php/php-src/branches/PHP_5_3/ext/standard/string.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/string.c 2011-04-03 02:59:13 UTC (rev 309909) +++ php/php-src/branches/PHP_5_3/ext/standard/string.c 2011-04-03 07:18:27 UTC (rev 309910) @@ -5243,10 +5243,6 @@ RETURN_FALSE; } - if (len > s1_len - offset) { - len = s1_len - offset; - } - cmp_len = (uint) (len ? len : MAX(s2_len, (s1_len - offset))); if (!cs) { Added: php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug54454.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug54454.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/strings/bug54454.phpt 2011-04-03 07:18:27 UTC (rev 309910) @@ -0,0 +1,8 @@ +--TEST-- +Bug #54454 (substr_compare incorrectly reports equality in some cases) +--FILE-- +<?php +var_dump(substr_compare('/', '/asd', 0, 4)); +?> +--EXPECT-- +int(-3) Modified: php/php-src/branches/PHP_5_3/ext/standard/tests/strings/substr_compare.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/strings/substr_compare.phpt 2011-04-03 02:59:13 UTC (rev 309909) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/strings/substr_compare.phpt 2011-04-03 07:18:27 UTC (rev 309910) @@ -27,7 +27,7 @@ Warning: substr_compare(): The start position cannot exceed initial string length in %s on line %d bool(false) -int(0) +int(-1) Warning: substr_compare() expects parameter 5 to be boolean, object given in %s on line %d bool(false) Modified: php/php-src/trunk/ext/standard/string.c =================================================================== --- php/php-src/trunk/ext/standard/string.c 2011-04-03 02:59:13 UTC (rev 309909) +++ php/php-src/trunk/ext/standard/string.c 2011-04-03 07:18:27 UTC (rev 309910) @@ -5252,10 +5252,6 @@ RETURN_FALSE; } - if (len > s1_len - offset) { - len = s1_len - offset; - } - cmp_len = (uint) (len ? len : MAX(s2_len, (s1_len - offset))); if (!cs) { Added: php/php-src/trunk/ext/standard/tests/strings/bug54454.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/strings/bug54454.phpt (rev 0) +++ php/php-src/trunk/ext/standard/tests/strings/bug54454.phpt 2011-04-03 07:18:27 UTC (rev 309910) @@ -0,0 +1,8 @@ +--TEST-- +Bug #54454 (substr_compare incorrectly reports equality in some cases) +--FILE-- +<?php +var_dump(substr_compare('/', '/asd', 0, 4)); +?> +--EXPECT-- +int(-3) Modified: php/php-src/trunk/ext/standard/tests/strings/substr_compare.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/strings/substr_compare.phpt 2011-04-03 02:59:13 UTC (rev 309909) +++ php/php-src/trunk/ext/standard/tests/strings/substr_compare.phpt 2011-04-03 07:18:27 UTC (rev 309910) @@ -27,7 +27,7 @@ Warning: substr_compare(): The start position cannot exceed initial string length in %s on line %d bool(false) -int(0) +int(-1) Warning: substr_compare() expects parameter 5 to be boolean, object given in %s on line %d bool(false)
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php