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

From: Date: Thu, 04 Jun 2015 14:50:53 +0000
Subject: Bug #44901 [Ver->Csd]: 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-193118@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 Updated by: cmb@php.net Reported by: jake at yahoo-inc dot com Summary: open_basedir as prefix complains on attempts to access non-existant files -Status: Verified +Status: Closed Type: Bug Package: Safe Mode/open_basedir Operating System: * PHP Version: 5.*, 6CVS (2009-03-16) -Assigned To: +Assigned To: cmb Block user comment: N Private report: N New Comment: This ticket is obsolete, because the open_basedir restriction can't be used as prefix as of PHP 5.2.16 and 5.3.4[1]. [1] <http://php.net/manual/en/ini.core.php#ini.open-basedir> Previous Comments: ------------------------------------------------------------------------ [2013-12-24 23:50:29] aaron dot hamid at gmail dot com Cannot reproduce on PHP-5.6 branch. ------------------------------------------------------------------------ [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 (#193118) next »