Edit report at http://bugs.php.net/bug.php?id=44901&edit=1

 ID:                 44901
 Comment by:         softwareelves 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:

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" ) );


Previous Comments:
------------------------------------------------------------------------
[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 http://bugs.php.net/bug.php?id=44901&edit=1

Reply via email to