Bug #44901 [Com]: open_basedir as prefix complains on attempts to access non-existant files

From: 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

« previous php.bugs (#183462) next »