tony2001 Fri Jun 1 13:35:23 2007 UTC
Added files: (Branch: PHP_5_2)
/php-src/ext/standard/tests/general_functions bug41518.phpt
Modified files:
/php-src NEWS
/php-src/main fopen_wrappers.c
Log:
MFH: fix #41518 (file_exists() warns of open_basedir restriction on
non-existent file)
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.748&r2=1.2027.2.547.2.749&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.748 php-src/NEWS:1.2027.2.547.2.749
--- php-src/NEWS:1.2027.2.547.2.748 Fri Jun 1 10:04:05 2007
+++ php-src/NEWS Fri Jun 1 13:35:23 2007
@@ -1,6 +1,8 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2007, PHP 5.2.4
+- Fixed bug #41518 (file_exists() warns of open_basedir restriction on
+ non-existent file). (Tony)
- Fixed bug #39330 (apache2handler does not call shutdown actions before
apache child die). (isk at ecommerce dot com, Gopal, Tony)
http://cvs.php.net/viewvc.cgi/php-src/main/fopen_wrappers.c?r1=1.175.2.3.2.11&r2=1.175.2.3.2.12&diff_format=u
Index: php-src/main/fopen_wrappers.c
diff -u php-src/main/fopen_wrappers.c:1.175.2.3.2.11
php-src/main/fopen_wrappers.c:1.175.2.3.2.12
--- php-src/main/fopen_wrappers.c:1.175.2.3.2.11 Wed Apr 18 11:58:40 2007
+++ php-src/main/fopen_wrappers.c Fri Jun 1 13:35:23 2007
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: fopen_wrappers.c,v 1.175.2.3.2.11 2007/04/18 11:58:40 dmitry Exp $ */
+/* $Id: fopen_wrappers.c,v 1.175.2.3.2.12 2007/06/01 13:35:23 tony2001 Exp $ */
/* {{{ includes
*/
@@ -172,8 +172,8 @@
}
}
+ resolved_name_len = strlen(resolved_name);
if (path_tmp[path_len - 1] == PHP_DIR_SEPARATOR) {
- resolved_name_len = strlen(resolved_name);
if (resolved_name[resolved_name_len - 1] !=
PHP_DIR_SEPARATOR) {
resolved_name[resolved_name_len] =
PHP_DIR_SEPARATOR;
resolved_name[++resolved_name_len] = '\0';
@@ -189,6 +189,16 @@
/* File is in the right directory */
return 0;
} else {
+ /* /openbasedir/ and /openbasedir are the same
directory */
+ if (resolved_basedir_len == (resolved_name_len + 1) &&
resolved_basedir[resolved_basedir_len - 1] == PHP_DIR_SEPARATOR) {
+#if defined(PHP_WIN32) || defined(NETWARE)
+ if (strncasecmp(resolved_basedir,
resolved_name, resolved_name_len) == 0) {
+#else
+ if (strncmp(resolved_basedir, resolved_name,
resolved_name_len) == 0) {
+#endif
+ return 0;
+ }
+ }
return -1;
}
} else {
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/general_functions/bug41518.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/general_functions/bug41518.phpt
+++ php-src/ext/standard/tests/general_functions/bug41518.phpt
--TEST--
Bug #41518 (file_exists() warns of open_basedir restriction on non-existent
file)
--SKIPIF--
<?php
/* let's use /tmp here */
$tmp_dir = "/tmp";
if (!is_dir($tmp_dir) || realpath($tmp_dir) !== $tmp_dir) {
die("skip");
}
?>
--INI--
open_basedir=/tmp/
--FILE--
<?php
$tmp_dir = "/tmp";
$tmp_file = $tmp_dir."/bug41418.tmp";
touch($tmp_file);
var_dump(file_exists($tmp_file)); //exists
var_dump(file_exists($tmp_file."nosuchfile")); //doesn't exist
echo "Done\n";
?>
--EXPECTF--
bool(true)
bool(false)
Done
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php