ID: 48506
Updated by: [email protected]
Reported By: arekm at maven dot pl
-Status: Verified
+Status: Assigned
Bug Type: Feature/Change Request
PHP Version: 5.2.9
Assigned To: scottmac
Previous Comments:
------------------------------------------------------------------------
[2009-06-09 14:09:23] [email protected]
The details are here
https://issues.apache.org/bugzilla/show_bug.cgi?id=46425
------------------------------------------------------------------------
[2009-06-09 13:47:52] arekm at maven dot pl
Description:
------------
Upcoming apr 2.0.0 (or 1.3 with backported patch) uses O_CLOEXEC for
own descriptors by default.
This means that when using shell_exec() the run script/binary has no
stdin/stdout/stderr due to O_CLOEXEC. This also means that if any output
is produced then script ends with EPIPE.
Tested with apache + apr 1.3 with backported patch.
http://svn.apache.org/viewvc/apr/apr/trunk/CHANGES?r1=747357&r2=748988
Reproduce code:
---------------
<?php
echo shell_exec("LC_ALL=C strace -o /tmp/WYNIK -f -F -s 200 ls -l
/notexistingfile");
?>
Run from apache + php + apr 1.3 + backported O_CLOEXEC patch like this
one
http://cvs.pld-linux.org/cgi-bin/cvsweb/packages/apr/apr-bug-46425.patch?rev=1.8
Expected result:
----------------
run "ls -l" and produce some output about file not existing
Actual result:
--------------
30120 lstat("/notexistingfile", 0x18f55f0) = -1 ENOENT (No such file or
directory)
30120 write(2, "ls: ", 4) = -1 EBADF (Bad file
descriptor)
30120 write(2, "cannot access /notexistingfile", 30) = -1 EBADF (Bad
file descriptor)
30120 write(2, ": No such file or directory", 27) = -1 EBADF (Bad file
descriptor)
30120 write(2, "\n", 1) = -1 EBADF (Bad file
descriptor)
30120 close(1) = 0
30120 close(2) = -1 EBADF (Bad file
descriptor)
30120 exit_group(2)
As you can see there is no file descriptor 2 and this means that ls
output is lost.
Probably the best for php is to always provide own descriptors without
relying on apache provided one.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=48506&edit=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.