]> granicus.if.org Git - php/commitdiff
fixed subtle bugs regarding attempting to chdir, plus cleanup issues. improved tempna...
authorDave Kelsey <dkelsey@php.net>
Thu, 22 Jan 2009 07:57:09 +0000 (07:57 +0000)
committerDave Kelsey <dkelsey@php.net>
Thu, 22 Jan 2009 07:57:09 +0000 (07:57 +0000)
27 files changed:
tests/security/open_basedir.inc
tests/security/open_basedir_chdir.phpt
tests/security/open_basedir_chmod.phpt
tests/security/open_basedir_copy.phpt
tests/security/open_basedir_copy_variation1.phpt
tests/security/open_basedir_dir.phpt
tests/security/open_basedir_disk_free_space.phpt
tests/security/open_basedir_error_log.phpt
tests/security/open_basedir_error_log_variation.phpt
tests/security/open_basedir_file.phpt
tests/security/open_basedir_file_get_contents.phpt
tests/security/open_basedir_file_put_contents.phpt
tests/security/open_basedir_fopen.phpt
tests/security/open_basedir_glob_variation.phpt [new file with mode: 0644]
tests/security/open_basedir_is_executable.phpt
tests/security/open_basedir_link.phpt
tests/security/open_basedir_linkinfo.phpt
tests/security/open_basedir_mkdir.phpt
tests/security/open_basedir_opendir.phpt
tests/security/open_basedir_readlink.phpt
tests/security/open_basedir_rename.phpt
tests/security/open_basedir_rmdir.phpt
tests/security/open_basedir_scandir.phpt
tests/security/open_basedir_symlink.phpt
tests/security/open_basedir_tempnam.phpt
tests/security/open_basedir_touch.phpt
tests/security/open_basedir_unlink.phpt

index 7fd0afc8bb0f12cef74e8db9834d80c6637a2005..c5de8ca11268e631f0e3fed3728db9830971aa7f 100644 (file)
@@ -59,7 +59,7 @@ function recursive_delete_directory($directory) {
 
 function create_directories() {
     delete_directories();
-    $directory = dirname(__FILE__);
+    $directory = getcwd();
 
     var_dump(mkdir($directory."/test"));
     var_dump(mkdir($directory."/test/ok"));
@@ -69,25 +69,28 @@ function create_directories() {
 }
 
 function delete_directories() {
-    $directory = (dirname(__FILE__)."/test");
+    $directory = (getcwd()."/test");
     recursive_delete_directory($directory);
 }
 
 function test_open_basedir_error($function) {
+    global $savedDirectory;
     var_dump($function("../bad"));
     var_dump($function("../bad/bad.txt"));
     var_dump($function(".."));
     var_dump($function("../"));
     var_dump($function("/"));
     var_dump($function("../bad/."));
-    $directory = dirname(__FILE__);
+    $directory = $savedDirectory;
     var_dump($function($directory."/test/bad/bad.txt"));
     var_dump($function($directory."/test/bad/../bad/bad.txt"));
 }
 
 function test_open_basedir_before($function, $change = TRUE) {
+    global $savedDirectory;
     echo "*** Testing open_basedir configuration [$function] ***\n";
-    $directory = dirname(__FILE__);
+    $directory = getcwd();
+    $savedDirectory = $directory;
     var_dump(chdir($directory));
     create_directories();
 
@@ -104,26 +107,29 @@ function test_open_basedir_after($function) {
 
 // This is used by functions that return an array on success
 function test_open_basedir_array($function) {
+    global $savedDirectory;
+
     test_open_basedir_before($function);
     test_open_basedir_error($function); 
     var_dump(is_array($function("./../.")));
     var_dump(is_array($function("../ok")));
     var_dump(is_array($function("ok.txt")));
     var_dump(is_array($function("../ok/ok.txt")));
-    $directory = dirname(__FILE__);
+    $directory = $savedDirectory;
     var_dump(is_array($function($directory."/test/ok/ok.txt")));
     var_dump(is_array($function($directory."/test/ok/../ok/ok.txt")));
     test_open_basedir_after($function);
 }
 
 function test_open_basedir($function) {
+    global $savedDirectory;
     test_open_basedir_before($function);
     test_open_basedir_error($function);     
     var_dump($function("./../."));
     var_dump($function("../ok"));
     var_dump($function("ok.txt"));
     var_dump($function("../ok/ok.txt"));
-    $directory = dirname(__FILE__);
+    $directory = $savedDirectory;
     var_dump($function($directory."/test/ok/ok.txt"));
     var_dump($function($directory."/test/ok/../ok/ok.txt"));
     test_open_basedir_after($function);
index 32ed4eb1ec9b37400d6e40c58dd4b46747955e7f..aa8cef52da9029d8c1d53c09b9fce7e5e5304734 100644 (file)
@@ -6,7 +6,6 @@ open_basedir=.
 <?php
 require_once "open_basedir.inc";
 test_open_basedir_before("chdir");
-$directory = dirname(__FILE__);
 
 var_dump(chdir("../bad"));
 var_dump(chdir(".."));
index 02fdce5a1b879ba09764adff5b43cca4cdad4942..7256d6ed7dce5d339c89567a4f6c27d2e12f79c1 100644 (file)
@@ -5,8 +5,9 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
+
 test_open_basedir_before("chmod");
-$directory = dirname(__FILE__);
 
 var_dump(chmod("../bad", 0600));
 var_dump(chmod("../bad/bad.txt", 0600));
@@ -17,12 +18,12 @@ var_dump(chmod("../bad/.", 0600));
 var_dump(chmod("../bad/./bad.txt", 0600));
 var_dump(chmod("./../.", 0600));
 
-var_dump(chmod($directory."/test/ok/ok.txt", 0600));
+var_dump(chmod($initdir."/test/ok/ok.txt", 0600));
 var_dump(chmod("./ok.txt", 0600));
 var_dump(chmod("ok.txt", 0600));
 var_dump(chmod("../ok/ok.txt", 0600));
 var_dump(chmod("../ok/./ok.txt", 0600));
-chmod($directory."/test/ok/ok.txt", 0777);
+chmod($initdir."/test/ok/ok.txt", 0777);
 
 test_open_basedir_after("chmod");
 ?>
index 9faaa82ac065cc24c597a548704e0c46a37f3984..7cb902add0a14f472bf3ed2de5cc39daf80bf2b2 100644 (file)
@@ -6,7 +6,6 @@ open_basedir=.
 <?php
 require_once "open_basedir.inc";
 test_open_basedir_before("copy");
-$directory = dirname(__FILE__);
 
 var_dump(copy("ok.txt", "../bad"));
 var_dump(copy("ok.txt", "../bad/bad.txt"));
index de532e12cb0dcfdf56d53d413df21d6dafe42bb7..899b31da27ed669ec2cdce183f22f3c6f6c5a890 100644 (file)
@@ -6,7 +6,6 @@ open_basedir=.
 <?php
 require_once "open_basedir.inc";
 test_open_basedir_before("copy");
-$directory = dirname(__FILE__);
 
 var_dump(copy("../bad/bad.txt", "copy.txt"));
 var_dump(unlink("copy.txt"));
index c6e331be1c8b91d82bc9cd00c243cdbeff5f3294..b1d6272bdc11bddc931a89f7ebbc161e931ff77f 100644 (file)
@@ -5,13 +5,14 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
+
 test_open_basedir_before("dir");
 test_open_basedir_error("dir");     
 
-$directory = dirname(__FILE__);
-var_dump(dir($directory."/test/ok/"));
-var_dump(dir($directory."/test/ok"));
-var_dump(dir($directory."/test/ok/../ok"));
+var_dump(dir($initdir."/test/ok/"));
+var_dump(dir($initdir."/test/ok"));
+var_dump(dir($initdir."/test/ok/../ok"));
 
 test_open_basedir_after("dir");?>
 --CLEAN--
index e3e36e670a3b46d9092c63b57f6c67cda34be584..365300ae61d35a22f0f4abf98e41d6a2cd59fcd9 100644 (file)
@@ -5,11 +5,11 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
-
+$initdir = getcwd();
 test_open_basedir_before("disk_free_space");
 test_open_basedir_error("disk_free_space");     
-$directory = dirname(__FILE__);
-var_dump(disk_free_space($directory."/test/ok"));
+
+var_dump(disk_free_space($initdir."/test/ok"));
 test_open_basedir_after("disk_free_space");
 ?>
 --CLEAN--
index 581dd3f57e4e2aafa0b0a1b91b2d67ee6c3b6132..e89e190215bd4b07d953af031e8f479734ad68b3 100644 (file)
@@ -6,14 +6,15 @@ error_log=
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("error_log");
-$directory = dirname(__FILE__);
 
-var_dump(ini_set("error_log", $directory."/test/bad/bad.txt"));
-var_dump(ini_set("error_log", $directory."/test/bad.txt"));
-var_dump(ini_set("error_log", $directory."/bad.txt"));
-var_dump(ini_set("error_log", $directory."/test/ok/ok.txt"));
-var_dump(ini_set("error_log", $directory."/test/ok/ok.txt"));
+
+var_dump(ini_set("error_log", $initdir."/test/bad/bad.txt"));
+var_dump(ini_set("error_log", $initdir."/test/bad.txt"));
+var_dump(ini_set("error_log", $initdir."/bad.txt"));
+var_dump(ini_set("error_log", $initdir."/test/ok/ok.txt"));
+var_dump(ini_set("error_log", $initdir."/test/ok/ok.txt"));
 
 test_open_basedir_after("error_log");
 ?>
index d169a213e92a045d321651feccb0d1c57a49b8e7..ab182669a86c366a155e8b7ccb003894c4515efc 100644 (file)
@@ -5,14 +5,15 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("error_log");
-$directory = dirname(__FILE__);
+
 define("DESTINATION_IS_FILE", 3);
 
-var_dump(error_log("Hello World!", DESTINATION_IS_FILE, $directory."/test/bad/bad.txt"));
-var_dump(error_log("Hello World!", DESTINATION_IS_FILE, $directory."/test/bad.txt"));
-var_dump(error_log("Hello World!", DESTINATION_IS_FILE, $directory."/bad.txt"));
-var_dump(error_log("Hello World!", DESTINATION_IS_FILE, $directory."/test/ok/ok.txt"));
+var_dump(error_log("Hello World!", DESTINATION_IS_FILE, $initdir."/test/bad/bad.txt"));
+var_dump(error_log("Hello World!", DESTINATION_IS_FILE, $initdir."/test/bad.txt"));
+var_dump(error_log("Hello World!", DESTINATION_IS_FILE, $initdir."/bad.txt"));
+var_dump(error_log("Hello World!", DESTINATION_IS_FILE, $initdir."/test/ok/ok.txt"));
 
 test_open_basedir_after("error_log");
 ?>
index 36daa54e009c802e705705cdd0994cae763c98f4..ad222e894bc7b97fa71ea81fce7fcb3f1955e605 100644 (file)
@@ -5,14 +5,14 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
-$directory = dirname(__FILE__);
+$initdir = getcwd();
 test_open_basedir_before("file");
 test_open_basedir_error("file");
      
 var_dump(file("ok.txt"));
 var_dump(file("../ok/ok.txt"));
-var_dump(file($directory."/test/ok/ok.txt"));
-var_dump(file($directory."/test/ok/../ok/ok.txt"));
+var_dump(file($initdir."/test/ok/ok.txt"));
+var_dump(file($initdir."/test/ok/../ok/ok.txt"));
 
 test_open_basedir_after("file");
 ?>
index db117e4775fd7d8006be26bec424cd8ec68eb37d..8ee5ddb793bf66d561ec25d85fe490a82345c546 100644 (file)
@@ -5,14 +5,14 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
-$directory = dirname(__FILE__);
+$initdir = getcwd();
 test_open_basedir_before("file_get_contents");
 test_open_basedir_error("file_get_contents");
      
 var_dump(file_get_contents("ok.txt"));
 var_dump(file_get_contents("../ok/ok.txt"));
-var_dump(file_get_contents($directory."/test/ok/ok.txt"));
-var_dump(file_get_contents($directory."/test/ok/../ok/ok.txt"));
+var_dump(file_get_contents($initdir."/test/ok/ok.txt"));
+var_dump(file_get_contents($initdir."/test/ok/../ok/ok.txt"));
 
 test_open_basedir_after("file_get_contents");
 ?>
index 720c81dfe2c33a91dbd067658c59ec386fb29839..0235c509b54db6a6ce29c7c6f454be27449e40b9 100644 (file)
@@ -5,14 +5,14 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("file_put_contents");
-$directory = dirname(__FILE__);
 
 var_dump(file_put_contents("../bad/bad.txt", "Hello World!"));
 var_dump(file_put_contents(".././bad/bad.txt", "Hello World!"));
 var_dump(file_put_contents("../bad/../bad/bad.txt", "Hello World!"));
 var_dump(file_put_contents("./.././bad/bad.txt", "Hello World!"));
-var_dump(file_put_contents($directory."/test/bad/bad.txt", "Hello World!"));
+var_dump(file_put_contents($initdir."/test/bad/bad.txt", "Hello World!"));
 
 test_open_basedir_after("file_put_contents");
 ?>
index e90bf3e2bcba87c4358fa409d9085d841658c809..3e236af9d56a24698dde1df8e7193741e489f6f8 100644 (file)
@@ -5,8 +5,8 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("fopen");
-$directory = dirname(__FILE__);
 
 var_dump(fopen("../bad", "r"));
 var_dump(fopen("../bad/bad.txt", "r"));
@@ -17,7 +17,7 @@ var_dump(fopen("../bad/.", "r"));
 var_dump(fopen("../bad/./bad.txt", "r"));
 var_dump(fopen("./../.", "r"));
 
-var_dump(fopen($directory."/test/ok/ok.txt", "r"));
+var_dump(fopen($initdir."/test/ok/ok.txt", "r"));
 var_dump(fopen("./ok.txt", "r"));
 var_dump(fopen("ok.txt", "r"));
 var_dump(fopen("../ok/ok.txt", "r"));
diff --git a/tests/security/open_basedir_glob_variation.phpt b/tests/security/open_basedir_glob_variation.phpt
new file mode 100644 (file)
index 0000000..52c354f
--- /dev/null
@@ -0,0 +1,26 @@
+--TEST--
+Test open_basedir configuration for glob
+--INI--
+open_basedir=.
+--FILE--
+<?php
+$dir = "globtest1";
+$dir2 = "globtest2";
+mkdir($dir);
+mkdir($dir2);
+chdir($dir);
+var_dump(glob("../globtest*"));
+?>
+--CLEAN--
+<?php
+$dir = "globtest1";
+$dir2 = "globtest2";
+rmdir($dir);
+rmdir($dir2);
+?>
+--EXPECT--
+array(1) {
+  [0]=>
+  string(12) "../globtest1"
+}
+
index 1bab860557f5832a3e0c9ed3a786380bd8267eec..375d4277cd20ae5440b25db1539cfd8bcf07e80e 100644 (file)
@@ -5,14 +5,14 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("is_executable");
 test_open_basedir_error("is_executable");     
 
 var_dump(is_executable("ok.txt"));
 var_dump(is_executable("../ok/ok.txt"));
-$directory = dirname(__FILE__);
-var_dump(is_executable($directory."/test/ok/ok.txt"));
-var_dump(is_executable($directory."/test/ok/../ok/ok.txt"));
+var_dump(is_executable($initdir."/test/ok/ok.txt"));
+var_dump(is_executable($initdir."/test/ok/../ok/ok.txt"));
 
 test_open_basedir_after("is_executable");
 ?>
index a54c22f4b69e62dd3f85fffc8caa1a8c54d86d8f..82f97d6b0922577e9a9a314127eb8aef7278d78a 100644 (file)
@@ -11,23 +11,23 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("link");
-$directory = dirname(__FILE__);
 
-$target = ($directory."/test/ok/ok.txt");
+$target = ($initdir."/test/ok/ok.txt");
 var_dump(link($target, "../bad/link.txt"));
 var_dump(link($target, "../link.txt"));
 var_dump(link($target, "../bad/./link.txt"));
 var_dump(link($target, "./.././link.txt"));
 
-$link = ($directory."/test/ok/link.txt");
+$link = ($initdir."/test/ok/link.txt");
 var_dump(link("../bad/bad.txt", $link));
 var_dump(link("../bad", $link));
 var_dump(link("../bad/./bad.txt", $link));
 var_dump(link("../bad/bad.txt", $link));
 var_dump(link("./.././bad", $link));
 
-$target = ($directory."/test/ok/ok.txt");
+$target = ($initdir."/test/ok/ok.txt");
 
 var_dump(link($target, $link));
 var_dump(unlink($link));
index ab12a5149d3304f16b4e00dd7c9816ab5bdeb81e..5c930dddcef93bddcbebe228dd49fa69209bd246 100644 (file)
@@ -11,25 +11,25 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("linkinfo", FALSE);
-$directory = dirname(__FILE__);
 
-chdir($directory);
+chdir($initdir);
 
-$target = ($directory."/test/bad/bad.txt");
-$symlink = ($directory."/test/ok/symlink.txt");
+$target = ($initdir."/test/bad/bad.txt");
+$symlink = ($initdir."/test/ok/symlink.txt");
 var_dump(symlink($target, $symlink));
 
-chdir($directory."/test/ok");
+chdir($initdir."/test/ok");
 
 var_dump(linkinfo("symlink.txt"));
 var_dump(linkinfo("../ok/symlink.txt"));
 var_dump(linkinfo("../ok/./symlink.txt"));
 var_dump(linkinfo("./symlink.txt"));
-var_dump(linkinfo($directory."/test/ok/symlink.txt"));
+var_dump(linkinfo($initdir."/test/ok/symlink.txt"));
 
-$target = ($directory."/test/ok/ok.txt");
-$symlink = ($directory."/test/ok/symlink.txt");
+$target = ($initdir."/test/ok/ok.txt");
+$symlink = ($initdir."/test/ok/symlink.txt");
 var_dump(symlink($target, $symlink));
 var_dump(linkinfo($symlink));
 var_dump(unlink($symlink));
index 253818ccf93421883629033e695c5ed13c5b2130..9c32d408a2927080385d2b5340c63b28998cf214 100644 (file)
@@ -11,16 +11,16 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("mkdir");
-$directory = dirname(__FILE__);
 
 var_dump(mkdir("../bad/blah"));
 var_dump(mkdir("../blah"));
 var_dump(mkdir("../bad/./blah"));
 var_dump(mkdir("./.././blah"));
 
-var_dump(mkdir($directory."/test/ok/blah"));
-var_dump(rmdir($directory."/test/ok/blah"));
+var_dump(mkdir($initdir."/test/ok/blah"));
+var_dump(rmdir($initdir."/test/ok/blah"));
 test_open_basedir_after("mkdir");
 ?>
 --CLEAN--
index a935d5655f1e0dd48eb8847187992669e211a882..774b85356920585fba57f14c5115a57c7912906e 100644 (file)
@@ -5,13 +5,13 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("opendir");
 test_open_basedir_error("opendir");     
 
-$directory = dirname(__FILE__);
-var_dump(opendir($directory."/test/ok/"));
-var_dump(opendir($directory."/test/ok"));
-var_dump(opendir($directory."/test/ok/../ok"));
+var_dump(opendir($initdir."/test/ok/"));
+var_dump(opendir($initdir."/test/ok"));
+var_dump(opendir($initdir."/test/ok/../ok"));
 
 test_open_basedir_after("opendir");?>
 --CLEAN--
index cbba4307e5e5e38daac448c0bb6d023a9155eb28..a632dce243d0accbce26a870fe246242cc02419d 100644 (file)
@@ -11,25 +11,25 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("readlink", FALSE);
-$directory = dirname(__FILE__);
 
-chdir($directory);
+chdir($initdir);
 
-$target = ($directory."/test/bad/bad.txt");
-$symlink = ($directory."/test/ok/symlink.txt");
+$target = ($initdir."/test/bad/bad.txt");
+$symlink = ($initdir."/test/ok/symlink.txt");
 var_dump(symlink($target, $symlink));
 
-chdir($directory."/test/ok");
+chdir($initdir."/test/ok");
 
 var_dump(readlink("symlink.txt"));
 var_dump(readlink("../ok/symlink.txt"));
 var_dump(readlink("../ok/./symlink.txt"));
 var_dump(readlink("./symlink.txt"));
-var_dump(readlink($directory."/test/ok/symlink.txt"));
+var_dump(readlink($initdir."/test/ok/symlink.txt"));
 
-$target = ($directory."/test/ok/ok.txt");
-$symlink = ($directory."/test/ok/symlink.txt");
+$target = ($initdir."/test/ok/ok.txt");
+$symlink = ($initdir."/test/ok/symlink.txt");
 var_dump(symlink($target, $symlink));
 var_dump(readlink($symlink));
 var_dump(unlink($symlink));
index 428e7a070a76a40543413de445e4132ed99f9963..2747093342e5db2a25f05d96d519d77214214c1d 100644 (file)
@@ -5,14 +5,14 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("rename");
-$directory = dirname(__FILE__);
 
 var_dump(rename("../bad/bad.txt", "rename.txt"));
 var_dump(rename(".././bad/bad.txt", "rename.txt"));
 var_dump(rename("../bad/../bad/bad.txt", "rename.txt"));
 var_dump(rename("./.././bad/bad.txt", "rename.txt"));
-var_dump(rename($directory."/test/bad/bad.txt", "rename.txt"));
+var_dump(rename($initdir."/test/bad/bad.txt", "rename.txt"));
 
 test_open_basedir_after("rename");
 ?>
index b4d61f8b76657c04115bed16defc499b484e0c38..c1d4b6b14bda20f7fd29dda4c236e0b4a720e6d8 100644 (file)
@@ -5,14 +5,14 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("rmdir");
-$directory = dirname(__FILE__);
 
 var_dump(rmdir("../bad"));
 var_dump(rmdir(".././bad"));
 var_dump(rmdir("../bad/../bad"));
 var_dump(rmdir("./.././bad"));
-var_dump(rmdir($directory."/test/bad"));
+var_dump(rmdir($initdir."/test/bad"));
 
 test_open_basedir_after("rmdir");
 ?>
index 77987402c617b5e5ea67f0a380aa7f350f253cea..caffaa1e5d90ad7b3fe4795b94d49355b0b6da11 100644 (file)
@@ -5,13 +5,13 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("scandir");
 test_open_basedir_error("scandir");     
 
-$directory = dirname(__FILE__);
-var_dump(scandir($directory."/test/ok/"));
-var_dump(scandir($directory."/test/ok"));
-var_dump(scandir($directory."/test/ok/../ok"));
+var_dump(scandir($initdir."/test/ok/"));
+var_dump(scandir($initdir."/test/ok"));
+var_dump(scandir($initdir."/test/ok/../ok"));
 
 test_open_basedir_after("scandir");?>
 --CLEAN--
@@ -48,7 +48,7 @@ Warning: scandir(..): failed to open dir: %s in %s on line %d
 Warning: scandir(): (errno 1): %s in %s on line %d
 bool(false)
 
-Warning: scandir(): open_basedir restriction in effect. File(../) is not within the allowed path(s): (.) in %s on line 80
+Warning: scandir(): open_basedir restriction in effect. File(../) is not within the allowed path(s): (.) in %s on line %d
 
 Warning: scandir(../): failed to open dir: %s in %s on line %d
 
index 3aaa07b820e61f21b829f5277553f85cd5251eb2..cdc8e7bcc476a36b6c0032b28493a73cbbdd6a54 100644 (file)
@@ -11,30 +11,30 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("symlink");
-$directory = dirname(__FILE__);
 
-$target = ($directory."/test/ok/ok.txt");
+$target = ($initdir."/test/ok/ok.txt");
 var_dump(symlink($target, "../bad/symlink.txt"));
 var_dump(symlink($target, "../symlink.txt"));
 var_dump(symlink($target, "../bad/./symlink.txt"));
 var_dump(symlink($target, "./.././symlink.txt"));
 
-$symlink = ($directory."/test/ok/symlink.txt");
+$symlink = ($initdir."/test/ok/symlink.txt");
 var_dump(symlink("../bad/bad.txt", $symlink));
 var_dump(symlink("../bad", $symlink));
 var_dump(symlink("../bad/./bad.txt", $symlink));
 var_dump(symlink("../bad/bad.txt", $symlink));
 var_dump(symlink("./.././bad", $symlink));
 
-$target = ($directory."/test/ok/ok.txt");
+$target = ($initdir."/test/ok/ok.txt");
 
 var_dump(symlink($target, $symlink));
 var_dump(unlink($symlink));
 
 var_dump(mkdir("ok2"));
-$symlink = ($directory."/test/ok/ok2/ok.txt");
-var_dump(symlink("../ok.txt", $symlink)); // $target == (dirname($symlink)."/".$target) == ($directory."/test/ok/ok.txt");
+$symlink = ($initdir."/test/ok/ok2/ok.txt");
+var_dump(symlink("../ok.txt", $symlink)); // $target == (dirname($symlink)."/".$target) == ($initdir."/test/ok/ok.txt");
 var_dump(unlink($symlink));
 
 test_open_basedir_after("symlink");
index 247ac88d5b0b2f0b391d0642bfc2e2b6464391de..fd63e2978cb1d5863a7f3ad83c1a51c8fae9ac0f 100644 (file)
@@ -5,8 +5,8 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("tempnam");
-$directory = dirname(__FILE__);
 
 var_dump(tempnam("../bad", "test"));
 var_dump(tempnam("..", "test"));
@@ -14,8 +14,19 @@ var_dump(tempnam("../", "test"));
 var_dump(tempnam("/", "test"));
 var_dump(tempnam("../bad/.", "test"));
 var_dump(tempnam("./../.", "test"));
+var_dump(tempnam("", "test"));
 
-$file = tempnam($directory."/test/ok", "test");
+//absolute test
+$file = tempnam($initdir."/test/ok", "test");
+var_dump($file);
+var_dump(unlink($file));
+
+//relative test
+$file = tempnam(".", "test");
+var_dump($file);
+var_dump(unlink($file));
+
+$file = tempnam("../ok", "test");
 var_dump($file);
 var_dump(unlink($file));
 
@@ -51,6 +62,13 @@ bool(false)
 
 Warning: tempnam(): open_basedir restriction in effect. File(./../.) is not within the allowed path(s): (.) in %s on line %d
 bool(false)
+
+Warning: tempnam(): open_basedir restriction in effect. File() is not within the allowed path(s): (.) in %s on line %d
+bool(false)
+string(%d) "%s"
+bool(true)
+string(%d) "%s"
+bool(true)
 string(%d) "%s"
 bool(true)
 *** Finished testing open_basedir configuration [tempnam] ***
index b0a5aee61259f5c9c741b1eb7072ee3ff23c6674..3a8aee8219cdd14f0a0fccd20a3753fee83cf43a 100644 (file)
@@ -5,8 +5,8 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("touch");
-$directory = dirname(__FILE__);
 
 var_dump(touch("../bad"));
 var_dump(touch("../bad/bad.txt"));
@@ -17,7 +17,7 @@ var_dump(touch("../bad/."));
 var_dump(touch("../bad/./bad.txt"));
 var_dump(touch("./../."));
 
-var_dump(touch($directory."/test/ok/ok.txt"));
+var_dump(touch($initdir."/test/ok/ok.txt"));
 var_dump(touch("./ok.txt"));
 var_dump(touch("ok.txt"));
 var_dump(touch("../ok/ok.txt"));
index 75b0f3f4a94a36c8e05bf86885bd50ebcf13f5a9..aeedac9130dfb1e521242f1e834eb47abda46d01 100644 (file)
@@ -5,14 +5,14 @@ open_basedir=.
 --FILE--
 <?php
 require_once "open_basedir.inc";
+$initdir = getcwd();
 test_open_basedir_before("unlink");
-$directory = dirname(__FILE__);
 
 var_dump(unlink("../bad/bad.txt"));
 var_dump(unlink(".././bad/bad.txt"));
 var_dump(unlink("../bad/../bad/bad.txt"));
 var_dump(unlink("./.././bad/bad.txt"));
-var_dump(unlink($directory."/test/bad/bad.txt"));
+var_dump(unlink($initdir."/test/bad/bad.txt"));
 
 test_open_basedir_after("unlink");
 ?>