#45546 [Opn->Fbk]: PCRE with utf8 kill apache childprocess

From: Date: Sat, 19 Jul 2008 11:13:42 +0000
Subject: #45546 [Opn->Fbk]: PCRE with utf8 kill apache childprocess
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-126985@lists.php.net to get a copy of this message
 ID:               45546
 Updated by:       nlopess@php.net
 Reported By:      kaiser at macbureau dot de
-Status:           Open
+Status:           Feedback
 Bug Type:         PCRE related
 Operating System: FreeBSD 7
 PHP Version:      5.2.6
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php5.3-latest.tar.gz
 
For Windows (zip):
 
  http://snaps.php.net/win32/php5.3-win32-latest.zip

For Windows (installer):

  http://snaps.php.net/win32/php5.3-win32-installer-latest.msi

I can't reproduce the crash here, nor valgrind finds any problem. Can
you please try the cvs version please?


Previous Comments:
------------------------------------------------------------------------

[2008-07-17 19:29:53] kaiser at macbureau dot de

Sorry, c&p error, thanks, looking forward to hear from you.

./test.php
Segmentation fault (core dumped)




#!/usr/local/bin/php
<?php

function is_utf8($str) {
		return (preg_match('/^([\x00-\x7f]|[\xc2-\xdf][\x80-
\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xec][\x80-\xbf]{2}|\xed[\x80-
\x9f][\x80-
\xbf]|[\xee-\xef][\x80-\xbf]{2}|f0[\x90-\xbf][\x80-\xbf]{2}|[\xf1-
\xf3][\x80-
\xbf]{3}|\xf4[\x80-\x8f][\x80-\xbf]{2})*$/', $str) === 1);
}

$i=0;
$str = '';
while ($i<5000) {
    $str .= 'a';
    $i++;
}

is_utf8($str);

?>

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

[2008-07-17 17:53:51] nlopess@php.net

the pasted code is incomplete (doesn't even run). Please provide a
complete, but short, reproducible script.

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

[2008-07-17 16:31:50] kaiser at macbureau dot de

Description:
------------
PCRE with utf8 (Typo3 Mailform) kills apache childprocess. With the 
following entry in apache errorlog on FreeBSD 7 with Apache 2.2.8:

[notice] child pid 6709 exit signal Illegal instruction (4)


Output of ulimit -a:

core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) 33554432
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 11095
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 524288
cpu time               (seconds, -t) unlimited
max user processes              (-u) 5547
virtual memory          (kbytes, -v) unlimite

Reproduce code:
---------------
#!/usr/local/bin/php
<?php

function is_utf8($str) {
                return
(preg_match('/^([\x00-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\
}

$i=0;
$str = '';
while ($i<5000) {
    $str .= 'a';
    $i++;
}

is_utf8($str);

?>



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


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



Thread (26 messages)

« previous php.bugs (#126985) next »