php-documentation-list | 2003101
Date: 10/04/03
- Next message: ilya at lebedev dot net: "[PHP-DOC] #25754 [Opn]: preg_replace() and preg_replace_callback() crash with long matches"
- Previous message: phpdoc <email protected>: "[PHP-DOC] Notes Status, 8715 total"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
ID: 25754
Updated by: sniper <email protected>
Reported By: ilya at lebedev dot net
Status: Open
-Bug Type: Reproducible crash
+Bug Type: Documentation problem
Operating System: Win32
PHP Version: 4CVS-2003-10-04 (stable)
New Comment:
>From http://www.pcre.org/pcre.txt, LIMITATIONS:
"The maximum length of a subject string is the largest
positive number that an integer variable can hold. However,
PCRE uses recursion to handle subpatterns and indefinite
repetition. This means that the available stack space may
limit the size of a subject string that can be processed by
certain patterns."
This propably should be mentioned in our manual pages too.
(On Linux, the example script worked fine with 9344 chars between the
tags, but 9345 crashed)
Previous Comments:
------------------------------------------------------------------------
[2003-10-04 19:56:54] ilya at lebedev dot net
Description:
------------
Regular expression from the J.Friedl's "Mastering regular expressions"
book that matches pair html tags:
#<tag([^>]*)>(((?!</?tag(?:[^>]*)>).)*)</tag>#si
When between <tag> and </tag> are more then 2100 bytes (symbols),
Apache crashes.
Same happens without "s" modifier, if string has no "newline" codes.
Reproduce code:
---------------
===
preg_replace("#<tag([^>]*)>(((?!</?tag(?:[^>]*)>).)*)</tag>#si","","<tag>
2200 symbols</tag>");
===
or
===
function callback (&$m) { return "";};
preg_replace_callback
("#<tag([^>]*)>(((?!</?tag(?:[^>]*)>).)*)</tag>#si","callback","<tag>
2200 symbols </tag>");
===
Expected result:
----------------
Match blocks bigger then 2100 symbols long.
Actual result:
--------------
With more then 2100 sybmols between tags Apache crashes.
------------------------------------------------------------------------
-- Edit this bug report at http://bugs.php.net/?id=25754&edit=1
- Next message: ilya at lebedev dot net: "[PHP-DOC] #25754 [Opn]: preg_replace() and preg_replace_callback() crash with long matches"
- Previous message: phpdoc <email protected>: "[PHP-DOC] Notes Status, 8715 total"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

