From: php at mike2k dot com Operating system: Ubuntu Edgy and CentOS Linux 2.6 PHP version: 5.2.3 PHP Bug Type: Scripting Engine problem Bug description: Simple snippet of code consistently crashes FastCGI engines
Description: ------------ The simple code below somehow magically triggers a segfault. PHP is compiled with './configure' '--enable-fastcgi' '--enable-discard-path' '--enable-force-cgi-redirect' '--enable-cli' '--with-mysql' '--with-mysqli=/usr/bin/mysql_config' '--with-curl' '--enable-mbstring' '--with-zlib' '--with-gd' '--enable -track-vars' '--enable-inline-optimization' '--disable-rpath' '--disable-ipv6' '--disable-debug' '--with-jpeg-dir=/usr' '-- with-png-dir=/usr' '--with-freetype-dir' '--enable-gd-native-ttf' '--enable-shmop' '--with-xsl' '--enable-sockets' '--enabl e-pcntl' '--with-mcrypt' '--with-bz2' '--enable-sqlite-utf8' '--with-tidy' '--with-pcre-dir' '--enable-exif' NO bytecode caches or optimizers currently running either. Reproduce code: --------------- <? $uri = ereg_replace('^/bootstrap.php', '', $_SERVER['PATH_INFO']).'/'; function uri_check($uri, $level) { global $config; $uri = substr($uri, 0, strrpos($uri, '/')); if(file_exists($config['base_dir'].$uri.'.php') || file_exists($config['base_dir'].$uri.'/index.php')) { } uri_check($uri, $level+1); } uri_check($uri, 1); ?> Expected result: ---------------- Webserver returns a bad gateway 502 error. This shows up in dmesg/system logs, one per request: php-cgi[10541]: segfault at 0000007fbf3ffd48 rip 00000000006d7055 rsp 0000007fbf3ffd50 error 6 php-cgi[10546]: segfault at 0000007fbf3ffd48 rip 00000000006d7055 rsp 0000007fbf3ffd50 error 6 php-cgi[10548]: segfault at 0000007fbf3ffd48 rip 00000000006d7055 rsp 0000007fbf3ffd50 error 6 php-cgi[10535]: segfault at 0000007fbf3ffd48 rip 00000000006d7055 rsp 0000007fbf3ffd50 error 6 php-cgi[10596]: segfault at 0000007fbf3fff98 rip 00000000006d7055 rsp 0000007fbf3fffa0 error 6 Actual result: -------------- it's a pretty simple recursive function. no classes, nothing. putting that code by itself in a file without any other code (includes, anything) consistently crashes. hopefully it does for someone else who is more skilled with the debugging process. -- Edit bug report at http://bugs.php.net/?id=41621&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=41621&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=41621&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=41621&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=41621&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=41621&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=41621&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=41621&r=needscript Try newer version: http://bugs.php.net/fix.php?id=41621&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=41621&r=support Expected behavior: http://bugs.php.net/fix.php?id=41621&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=41621&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=41621&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=41621&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=41621&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=41621&r=dst IIS Stability: http://bugs.php.net/fix.php?id=41621&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=41621&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=41621&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=41621&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=41621&r=mysqlcfg