#37397 [Opn->Bgs]: Win32 PHP crash
| From: | tony2001@php.net | Date: | Fri, 12 May 2006 09:07:50 +0000 |
| Subject: | #37397 [Opn->Bgs]: Win32 PHP crash | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-97006@lists.php.net to get a copy of this message | ||
ID: 37397
Updated by: tony2001@php.net
Reported By: alex at onix-systems dot com
-Status: Open
+Status: Bogus
Bug Type: PCRE related
Operating System: WinXP
PHP Version: 5.1.4
New Comment:
It was very clear explanation and we have nothing to add.
Overfilling the stack won't work with any version.
Previous Comments:
------------------------------------------------------------------------
[2006-05-12 08:58:54] alex at onix-systems dot com
This is very strange explanation. I would believe in it but this worked
fine in previous versions of PHP (5.1.2 and lower) and also works fine
under Linux even in new versions. There is definitely some issue in
Win32 build. Don't you think so?
------------------------------------------------------------------------
[2006-05-11 20:41:46] edink@php.net
Using nested quantifiers will use up all available stack, there is
nothing we can do about this.
------------------------------------------------------------------------
[2006-05-10 13:04:34] alex at onix-systems dot com
It crashes as well.
------------------------------------------------------------------------
[2006-05-10 12:42:24] derick@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.2-win32-latest.zip
------------------------------------------------------------------------
[2006-05-10 12:25:42] alex at onix-systems dot com
Description:
------------
Can be reproduced on Win32. Works fine under Linux.
Appieared in PHP-5.1.3 ans still exists in PHP-5.1.4
The following code results stack overflow and PHP crash.
Code works fine if $a < 1560
Reproduce code:
---------------
<?
$value = "";
for( $a=0; $a < 1561; $a++ ) {
$value .= "t";
}
$res = preg_split(
'/(?:(?:(?:(?<!\\\\)(?:[\\\\](?:[\\\\]{2})*))+[\$])|[^\$])*/', $value
);
?>
Expected result:
----------------
nothing in this example
Actual result:
--------------
PHP crash
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=37397&edit=1