php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #41904 proc_open with empty array as $env should pass empty environment to process
Submitted: 2007-07-05 13:35 UTC Modified: 2007-08-19 16:10 UTC
From: martin dot partel at mbnet dot fi Assigned:
Status: Closed Package: Program Execution
PHP Version: 5.2.3 OS: Linux
Private report: No CVE-ID:
 [2007-07-05 13:35 UTC] martin dot partel at mbnet dot fi
Description:
------------
The documentation of proc_open states that passing NULL as the $env 
parameter of proc_open has the child process use the same 
environment as the current PHP process. Passing an empty array seems 
to have the same effect, even though intuitively it should give the 
child process an empty environment.

Reproduce code:
---------------
<?php
echo '<pre>';
$descriptorspec = array(
   0 => array("pipe", "r"),
   1 => array("pipe", "w"),
);
$cwd = '/tmp';
$env = array();
$process = proc_open('php', $descriptorspec, $pipes, $cwd, $env);
if (is_resource($process)) {
    fwrite($pipes[0], '<?php print_r($_ENV); ?>');
    fclose($pipes[0]);

    echo stream_get_contents($pipes[1]);
    fclose($pipes[1]);

    proc_close($process);
}


Expected result:
----------------
The script should output an (almost) empty $_ENV.

Actual result:
--------------
The script outputs the $_ENV of the parent process.

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2007-07-05 13:51 UTC] tony2001@php.net
Reclassified as docu issue.
 [2007-08-16 12:48 UTC] vrana@php.net
Empty array should pass empty environment to be able to pass this special value.
 [2007-08-17 10:43 UTC] jani@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.

Now empty env array passes empty environment like it should.
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Sun Apr 20 05:03:19 2014 UTC