ID: 37679
Updated by: [EMAIL PROTECTED]
Reported By: mdon at names dot co dot uk
-Status: Open
+Status: Bogus
Bug Type: CGI related
Operating System: CentOS 4.2
PHP Version: 4.4.2
New Comment:
This is expected behaviour of the cgi sapi. You are supposed to used
cli version of PHP to execute command line scripts. Avoiding problems
like this was one of the reasons cli version of PHP was made in the
first place.
Previous Comments:
------------------------------------------------------------------------
[2006-06-02 13:59:45] mdon at names dot co dot uk
Description:
------------
Forking a process to run a second PHP script using
system() or exec() creates a fork bomb in CGI version of
PHP 4.4.2. This appears to be due to the
$PATH_TRANSLATED environment variable not being cleared
correctly and is reproducible from the command line.
Reproduce code:
---------------
test1.php:
<?php system("php -q test2.php")?>
test2.php
<?php echo "hello, i'm test2.php\n"?>
Expected result:
----------------
When test1.php is run via a web server or from the
command line, I would expect to just see the output of
test2.php.
Actual result:
--------------
Running test1.php via a web server (Zeus 4.3r2 in our
case) creates a fork bomb, which looks like this in ps:
17522 2:49 \_ zeus.cgi
16666 0:00 | \_ php
16668 0:00 | | \_ php -q test2.php
16670 0:00 | | \_ php -q test2.php
16672 0:00 | | \_ php -q test2.php
16674 0:00 | | \_ php -q test2.php
16676 0:00 | | \_ php -q test2.php
...etc...
With some help from the Zeus developers, we have
determined that this appears to be due to the
$PATH_TRANSLATED environment variable not being cleared
correctly. This can be replicated from the command line
as follows:
export PATH_TRANSLATED="test1.php"; php test1.php
PHP was configured with the following options:
./configure --prefix=/usr/local --enable-bcmath --with-
freetype-dir --enable-ftp --with-mysql=/usr --with-
mssql=/usr/local --with-mcrypt=/usr/local/lib/libmcrypt
--with-zlib-dir=/usr/local --with-pspell --with-curl --
with-imap=/usr/local/imap-2002e --with-gd --with-jpeg-
dir --with-png-dir --with-libdir=/usr/lib --with-ttf --
with-xml --enable-xslt --with-xslt-sablot --with-sablot-
js --enable-mbstring --with-config-file-path=/usr/local/
bin --with-pear --with-openssl
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=37679&edit=1