|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2006-02-24 09:24 UTC] joc at presence-pc dot com
Description:
------------
Hi,
PHP segfaults during a call to preg_replace.
If in the code below
preg_replace('/(\s|^)(\.)+/',' ',$source);
is replaced by
preg_replace('/(\s|^)\.+/',' ',$source);
The crash doesn't occurs anymore.
Regards,
Jocelyn
Reproduce code:
---------------
<?$source= "
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................
..........................................................................................................................................................................
";
preg_replace('/(\s|^)(\.)+/',' ',$source);
?>
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Nov 02 01:00:02 2025 UTC |
Hi, Here is the backtrace : #0 0x08072ff9 in match (eptr=0x8360dfd '.' <repeats 200 times>..., ecode=0x835c146 "R", offset_top=6, md=0xbfffd210, ims=0, eptrb=0xbf8004d8, flags=2) at /usr/src/php-4.4.2/ext/pcre/pcrelib/pcre_exec.c:517 517 utf8 = md->utf8; /* Local copy of the flag */ (gdb) bt #0 0x08072ff9 in match (eptr=0x8360dfd '.' <repeats 200 times>..., ecode=0x835c146 "R", offset_top=6, md=0xbfffd210, ims=0, eptrb=0xbf8004d8, flags=2) at /usr/src/php-4.4.2/ext/pcre/pcrelib/pcre_exec.c:517 #1 0x080741a9 in match (eptr=0x8360dfd '.' <repeats 200 times>..., ecode=0x835c14b "C", offset_top=6, md=0xbfffd210, ims=0, eptrb=0xbf8004d8, flags=2) at /usr/src/php-4.4.2/ext/pcre/pcrelib/pcre_exec.c:1123 #2 0x0807317b in match (eptr=0x8360dfc '.' <repeats 200 times>..., ecode=0x835c146 "R", offset_top=6, md=0xbfffd210, ims=0, eptrb=0xbf8004d8, flags=2) at /usr/src/php-4.4.2/ext/pcre/pcrelib/pcre_exec.c:589 #3 0x080741a9 in match (eptr=0x8360dfc '.' <repeats 200 times>..., ecode=0x835c14b "C", offset_top=6, md=0xbfffd210, ims=0, eptrb=0xbf800958, flags=2) at /usr/src/php-4.4.2/ext/pcre/pcrelib/pcre_exec.c:1123 #4 0x0807317b in match (eptr=0x8360dfb '.' <repeats 200 times>..., ecode=0x835c146 "R", offset_top=6, md=0xbfffd210, ims=0, eptrb=0xbf800958, flags=2) at /usr/src/php-4.4.2/ext/pcre/pcrelib/pcre_exec.c:589 [...] Regards, JocelynThe bottom of the stack : #14537 0x080741a9 in match (eptr=0x835f150 '.' <repeats 200 times>..., ecode=0x835c14b "C", offset_top=6, md=0xbfffd210, ims=0, eptrb=0xbfffc6d8, flags=2) at /usr/src/php-4.4.2/ext/pcre/pcrelib/pcre_exec.c:1123 #14538 0x0807317b in match (eptr=0x835f14f '.' <repeats 200 times>..., ecode=0x835c146 "R", offset_top=6, md=0xbfffd210, ims=0, eptrb=0xbfffc6d8, flags=2) at /usr/src/php-4.4.2/ext/pcre/pcrelib/pcre_exec.c:589 #14539 0x080741a9 in match (eptr=0x835f14f '.' <repeats 200 times>..., ecode=0x835c14b "C", offset_top=6, md=0xbfffd210, ims=0, eptrb=0xbfffcd98, flags=2) at /usr/src/php-4.4.2/ext/pcre/pcrelib/pcre_exec.c:1123 #14540 0x0807317b in match (eptr=0x835f14e '.' <repeats 200 times>..., ecode=0x835c146 "R", offset_top=4, md=0xbfffd210, ims=0, eptrb=0xbfffcd98, flags=2) at /usr/src/php-4.4.2/ext/pcre/pcrelib/pcre_exec.c:589 #14541 0x0807317b in match (eptr=0x835f14d "\n", '.' <repeats 199 times>..., ecode=0x835c13b "Q", offset_top=2, md=0xbfffd210, ims=0, eptrb=0xbfffcd98, flags=2) at /usr/src/php-4.4.2/ext/pcre/pcrelib/pcre_exec.c:589 #14542 0x08073285 in match (eptr=0x835f14d "\n", '.' <repeats 199 times>..., ecode=0x835c138 "P", offset_top=2, md=0xbfffd210, ims=0, eptrb=0xbfffcfd8, flags=2) at /usr/src/php-4.4.2/ext/pcre/pcrelib/pcre_exec.c:619 #14543 0x0807b052 in php_pcre_exec (argument_re=0x835c110, extra_data=0x0, subject=0x835f14c "\n\n", '.' <repeats 198 times>..., length=9700, start_offset=0, options=0, offsets=0x835c1dc, offsetcount=9) at /usr/src/php-4.4.2/ext/pcre/pcrelib/pcre_exec.c:3552 #14544 0x0808003c in php_pcre_replace (regex=0x83525c4 "/(\\s|^)(\\.)+/", regex_len=13, subject=0x835f14c "\n\n", '.' <repeats 198 times>..., subject_len=9700, replace_val=0x8352604, is_callable_replace=0, result_len=0xbfffd434, limit=-1) at /usr/src/php-4.4.2/ext/pcre/php_pcre.c:876 #14545 0x08080935 in php_replace_in_subject (regex=0x8352584, replace=0x8352604, subject=0x83530b4, result_len=0xbfffd434, limit=-1, is_callable_replace=0 '\0') at /usr/src/php-4.4.2/ext/pcre/php_pcre.c:1087 #14546 0x0808100f in preg_replace_impl (ht=3, return_value=0x8352644, this_ptr=0x0, return_value_used=0, is_callable_replace=0 '\0') at /usr/src/php-4.4.2/ext/pcre/php_pcre.c:1179 #14547 0x08081060 in zif_preg_replace (ht=3, return_value=0x8352644, this_ptr=0x0, return_value_used=0) at /usr/src/php-4.4.2/ext/pcre/php_pcre.c:1190 #14548 0x08183c63 in execute (op_array=0x8357854) at /usr/src/php-4.4.2/Zend/zend_execute.c:1675 #14549 0x081715d9 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /usr/src/php-4.4.2/Zend/zend.c:934 #14550 0x0813f12a in php_execute_script (primary_file=0xbffff9b0) at /usr/src/php-4.4.2/main/main.c:1753 #14551 0x081893fc in main (argc=2, argv=0xbffffa74) at /usr/src/php-4.4.2/sapi/cli/php_cli.c:830 (note there are more than 14500 calls to match function)