Bug #44901 [Com]: open_basedir as prefix complains on attempts to access non-existant files
| From: | aaron dot hamid at gmail dot com | Date: | Tue, 24 Dec 2013 23:50:29 +0000 |
| Subject: | Bug #44901 [Com]: open_basedir as prefix complains on attempts to access non-existant files | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-183462@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=44901&edit=1
ID: 44901
Comment by: aaron dot hamid at gmail dot com
Reported by: jake at yahoo-inc dot com
Summary: open_basedir as prefix complains on attempts to
access non-existant files
Status: Verified
Type: Bug
Package: Safe Mode/open_basedir
Operating System: *
PHP Version: 5.*, 6CVS (2009-03-16)
Block user comment: N
Private report: N
New Comment:
Cannot reproduce on PHP-5.6 branch.
Previous Comments:
------------------------------------------------------------------------
[2013-12-24 23:40:04] aaron dot hamid at gmail dot com
Seems related to https://bugs.php.net/bug.php?id=41518 (which is
closed) as well
------------------------------------------------------------------------
[2013-04-03 20:16:23] mail+php at requinix dot net
Related To: Bug #64573
------------------------------------------------------------------------
[2011-05-25 18:07:24] softwareelves at gmail dot com
This bug doesn't seem to exist in 5.2.x.
I found it's not just a trailing slash but anything after an existing file path.
I found an easy way to show this bug:
error_reporting( E_ALL | E_STRICT );
var_dump( file_exists( __FILE__ ) );
var_dump( file_exists( __FILE__."/something_that_doesnt_exists" ) );
ini_set( "open_basedir", dirname( __FILE__ ) );
var_dump( file_exists( __FILE__ ) );
var_dump( file_exists( __FILE__."/something_that_doesnt_exists" ) );
------------------------------------------------------------------------
[2008-05-03 00:41:11] jake at yahoo-inc dot com
Description:
------------
When using open_basedir as a prefix, attempting to access files or directories which match the
prefix but are not present on the filesystem raise open_basedir restriction warnings.
Reproduce code:
---------------
// create files or directories on the file system "/foo1", "/foo2"
// add "/foo" (not "/foo/") to the open basedir restriction, then:
var_dump(file_exists('/foo1'));
var_dump(file_exists('/foo2'));
var_dump(file_exists('/foo3'));
Expected result:
----------------
this is the output returned:
bool(true)
bool(true)
bool(false)
which is expected, however, the "false" returned by the third call is disingenuous... it
is false because the call is being blocked by open_basedir, and the following warning is triggered:
[Fri May 2 17:33:05 2008] [error] PHP Warning: file_exists(): open_basedir restriction in effect.
File(/foo3) is not within the allowed path(s)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=44901&edit=1