#37239 [Fbk->Opn]: Regxp couses PHP script crach on Windows

From: Date: Mon, 15 May 2006 21:26:44 +0000
Subject: #37239 [Fbk->Opn]: Regxp couses PHP script crach on Windows
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-97137@lists.php.net to get a copy of this message
ID: 37239 User updated by: dimox at inbox dot lv Reported By: dimox at inbox dot lv -Status: Feedback +Status: Open Bug Type: Reproducible crash Operating System: Windows XP Pro SP2 PHP Version: 4.4.2 New Comment: Yes, its works on Linux. This bug is Windows only. On Apache/1.3.29 (Win32) PHP/4.3.10 this code works fine too. What information I can provide, except backtrace? Previous Comments: ------------------------------------------------------------------------ [2006-05-14 12:28:11] tony2001@php.net Works perfectly fine on Linux. Please provide more information. ------------------------------------------------------------------------ [2006-05-12 20:03:50] beagle-php at sector99 dot com I have used Dimox's code on a Windows 2000 server running IIS and PHP 4.4.2 and have reproduced the problem. The regular expression commands on this server combination seem to be susceptible to crashing like this. ------------------------------------------------------------------------ [2006-05-02 11:03:31] dimox at inbox dot lv Can I get trial version of MSVC6? If it exist, can you add link for me? I'm only web-programmer and I has no tools for C++ development/debugging. Maybe you can run file test_bug.php on your oun PC with this tools and generate this debug backtrace? ------------ test_bug.php ------------ <?php $text = '<block name="name1"> something <block name="name2">1223567890 qwertyuiop[[[]asdfghjkl;rrrr \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;rrrr \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;rrrr \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;rrrr \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;rrrr \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;rrrr \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;rrrr \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;rrrr \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;rrrr \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;rrrr \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;rrrr \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;rrrr \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;rrrr \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 <blockend> <blockend>'; $regex='/\<block\s*name=\"([^\"]+)\"\s*\>((.(?!\<block\s))+?)\<blockend\>/is'; while(preg_match_all($regex, $text, $block_matches,PREG_SET_ORDER)){ foreach($block_matches AS $block) echo '<pre>'; print_r($block_matches); $text = preg_replace($regex, '', $text); } ?> This file causes 100% crash on my Win32 server. I realy want to help PHP better. ------------------------------------------------------------------------ [2006-04-29 01:42:06] bjori@php.net Thank you for this bug report. To properly diagnose the problem, we need a backtrace to see what is happening behind the scenes. To find out how to generate a backtrace, please read http://bugs.php.net/bugs-generating-backtrace.php for *NIX and http://bugs.php.net/bugs-generating-backtrace-win32.php for Win32 Once you have generated a backtrace, please submit it to this bug report and change the status back to "Open". Thank you for helping us make PHP better. ------------------------------------------------------------------------ [2006-04-28 19:58:03] dimox at inbox dot lv While i symlificate the code i forgot to remove \%\> from example and posted text for parsig was too small to cause error. I found, that block content must be more tan 1330-1360 simbols to couse script crash - until this values it works fine! I increased all "memory size" values in php.ini and in the code, but problem still exist. Changed code: $text = '<block name="name1"> something <block name="name2">1223567890 qwertyuiop[[[]asdfghjkl;’’’’ \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;’’’’ \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;’’’’ \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;’’’’ \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;’’’’ \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;’’’’ \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;’’’’ \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;’’’’ \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;’’’’ \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;’’’’ \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;’’’’ \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;’’’’ \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1223567890 qwertyuiop[[[]asdfghjkl;’’’’ \zxcvbnm,./zxcvbnmm, xsxasxaxaxae dsvvzs vsv bdbdb<> <>><<< 1234567890123456789012345678901234567890123456789012345678901 <blockend> <blockend>'; $regex ='/\<block\s*name=\"([^\"]+)\"\s*\>((.(?!\<block\s))+?)\<blockend\>/is'; while(preg_match_all($regex, $text, $block_matches,PREG_SET_ORDER)){ ... $text = preg_replace($regex, '', $text); } ------------------------------------------------------------------------ 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/37239 -- Edit this bug report at http://bugs.php.net/?id=37239&edit=1

« previous php.bugs (#97137) next »