ID: 47520 Updated by: il...@php.net Reported By: pahan at hubbitus dot spb dot su -Status: Open +Status: Bogus Bug Type: PCRE related Operating System: Linux PHP Version: 5.3.0beta1 New Comment:
There is not much we can do about recursion limits other then suggest the lowering of the pcre.recursion_limit setting. The basic problem is that PCRE library (not PHP) is eating up the system stack during recursion and subsequently crashes when it runs out of room. This is not a PHP bug. Previous Comments: ------------------------------------------------------------------------ [2009-03-02 10:09:28] phpwnd at gmail dot com I forgot to add that in my case, lowering the value the pcre.recursion_limit INI setting make preg_* functions fail instead of making PHP segfault. ------------------------------------------------------------------------ [2009-03-02 10:01:52] phpwnd at gmail dot com I'd like to add that you don't need such a complicated test case, you can make preg_* segfault with just something like: $str = str_repeat(' ', 2490); preg_match('#(.)+#', $str); On my computer, a 2490-chars string is long enough to make it segfaults everytime. For some reason, 2489 chars will make it segfault only 1 out of 5 runs and 2480 chars are perfectly fine. If I replace the regexp with more capturing parenthesis such as #((.))+# that limit drops to 1500-or-so and that number decreases as the number of parenthesis increases. Using non-capturing patterns such as #(?:.)+# doubles that number. Obviously, the bug is related to capturing patterns repetition, assuming we're experiencing the same bug. I'll try to find a place where to host a core dump. ------------------------------------------------------------------------ [2009-02-28 09:00:02] pahan at hubbitus dot spb dot su Very apologize for mistake. I'm fix rights now, please recheck. ------------------------------------------------------------------------ [2009-02-28 01:19:21] fel...@php.net I cannot download the coredump file: "You don't have permission to access /_temp/php-pcre-bug/2/core.10135 on this server." Can you give us a backtrace? ------------------------------------------------------------------------ [2009-02-27 20:06:13] pahan at hubbitus dot spb dot su I'm thrice check the previous reports about this issue. And what? All closed as bogus, but segmentatoin fault still here! Where solution/fix??? Even common workaraund of problem is absent. Why it is bogus but not bug??? And also, please again read note: I use "Once-only subpattern", so, this should prevent recursion as I can understand. Or not? ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/47520 -- Edit this bug report at http://bugs.php.net/?id=47520&edit=1