Edit report at http://bugs.php.net/bug.php?id=54317&edit=1

 ID:                 54317
 Updated by:         paj...@php.net
 Reported by:        christian dot achatz at adventure-php-framework
 Summary:            Regexp crashes Apache/PHP
-Status:             Open
+Status:             Bogus
 Type:               Bug
 Package:            Regexps related
 Operating System:   Windows
 PHP Version:        5.3.6
 Block user comment: N
 Private report:     N

 New Comment:

Stack size problem. You can run the script through the CLI sapi to see
that PHP 

actually works. However Apache has a smaller stack and causes such
regexp to crash 

(or similar side effect). Increase the stack of Apache to fix this
problem. Use 

Editbin for that:
http://msdn.microsoft.com/en-us/library/d25ddyfc(v=VS.80).aspx


Previous Comments:
------------------------------------------------------------------------
[2011-03-19 16:05:27] christian dot achatz at adventure-php-framework

Description:
------------
---

>From manual page: http://www.php.net/function.preg-replace#Description

---

Calling the script below apache crashes on windows installations. After
removing almost any of the lines inside $notworking apache will NOT
crash, no matter which line was removed in most cases.





Here is the system list that causes a crash or not:



Windows 7 SP1 (64bit) | XAMPP | Apache/2.2.17 (Win32) | PHP 5.3.5 |
<<<<<<< CRASH!

Windows XP (32+64bit) | XAMPP | Apache 2.2.17 | PHP 5.3.5 | <<<<<<<
CRASH!

WinXP 32Bit / Apache 2.2.17 / PHP 5.2.14 <<<<<<< CRASH!

Fedora 32Bit / Apache 2.2.15 / PHP 5.3.3 --> OK

Ubuntu 10.10 32Bit / Apache2 2.2.16 / PHP 5.3.3 -> OK

Test script:
---------------
<?php

echo 'Is the following crashing apache or whatever?<br />'.PHP_EOL;



// After removing almost any of the lines inside $notworking apache will
NOT crash, no matter which line was removed in most cases.



$notworking = '<?php



//<*IslandStorageBase:start*> DO NOT CHANGE THIS COMMENT!

/**

* Automatically generated BaseObject for IslandStorage. !!DO NOT CHANGE
THIS BASE-CLASS!!

* CHANGES WILL BE OVERWRITTEN WHEN UPDATING!!

* You can change class "IslandStorage" which will extend this
base-class.

*/

class IslandStorageBase extends AbstractSimpleStorage {

}

<*IslandStorageBase:end*>

?>';



$content = preg_replace(

  '%//<\*IslandStorageBase:start\*>(.)+<\*IslandStorageBase:end\*>%s',

  'test',

  $notworking

);



echo 'If you can see this everything seems to be working fine.';



?>

Expected result:
----------------
Is the following crashing apache or whatever?

If you can see this everything seems to be working fine.

Actual result:
--------------
Apache crashes with the following log entry:



Parent: child process exited with status xyz -- Restarting.


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=54317&edit=1

Reply via email to