moriyoshi Thu Oct 2 04:01:15 2003 EDT Added files: (Branch: PHP_4_3) /php-src/ext/mbstring/tests php_gr_jp_dev_884-1.phpt php_gr_jp_dev_884-2.phpt
Modified files: /php-src/ext/mbstring mbregex.c Log: Fix for a regex bug that leads into an infinite loop due to optimization failure when the pattern is ".*" and both MULTILINE and SINGLELINE options are specified. # This bug was already squashed in HEAD, as it adopts an alternative # implementation. Index: php-src/ext/mbstring/mbregex.c diff -u php-src/ext/mbstring/mbregex.c:1.16.2.1 php-src/ext/mbstring/mbregex.c:1.16.2.2 --- php-src/ext/mbstring/mbregex.c:1.16.2.1 Tue Aug 5 16:54:43 2003 +++ php-src/ext/mbstring/mbregex.c Thu Oct 2 04:01:11 2003 @@ -3326,7 +3326,7 @@ } } if (bufp->options & MBRE_OPTIMIZE_ANCHOR) { - if (bufp->options&MBRE_OPTION_SINGLELINE) { + if (bufp->options&MBRE_OPTION_MULTILINE & range > 0) { goto begbuf_match; } anchor = 1; Index: php-src/ext/mbstring/tests/php_gr_jp_dev_884-1.phpt +++ php-src/ext/mbstring/tests/php_gr_jp_dev_884-1.phpt --TEST-- [EMAIL PROTECTED] #884 (1) --FILE-- <?php set_time_limit(2); var_dump(ereg_replace(".*", "b", "a")); var_dump(preg_replace("/.*/", "b", "a")); var_dump(mb_ereg_replace(".*", "b", "a")); ?> --EXPECT-- string(2) "bb" string(2) "bb" string(2) "bb" Index: php-src/ext/mbstring/tests/php_gr_jp_dev_884-2.phpt +++ php-src/ext/mbstring/tests/php_gr_jp_dev_884-2.phpt --TEST-- [EMAIL PROTECTED] #884 (2) --FILE-- <?php var_dump(mb_ereg_replace("C?$", "Z", "ABC")); var_dump(ereg_replace("C?$", "Z", "ABC")); var_dump(mb_ereg_replace("C*$", "Z", "ABC")); var_dump(ereg_replace("C*$", "Z", "ABC")); ?> --EXPECT-- string(4) "ABZZ" string(4) "ABZZ" string(4) "ABZZ" string(4) "ABZZ" -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php