]> 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:04 +0000 (07:57 +0000)
committerDave Kelsey <dkelsey@php.net>
Thu, 22 Jan 2009 07:57:04 +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 9b3debf189a0df5efb47dd8562a08237567f8d12..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(".."));
@@ -48,3 +47,4 @@ bool(false)
 Warning: chdir(): open_basedir restriction in effect. File(./../.) is not within the allowed path(s): (.) in %s on line %d
 bool(false)
 *** Finished testing open_basedir configuration [chdir] ***
+
index 78a44f88a227cfff21dfc1edb016367fd905bd5d..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");
 ?>
@@ -68,3 +69,4 @@ bool(true)
 bool(true)
 bool(true)
 *** Finished testing open_basedir configuration [chmod] ***
+
index a2bdbd52b867298a25f62ff4041101cec11e0352..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"));
@@ -76,3 +75,4 @@ bool(false)
 bool(true)
 bool(true)
 *** Finished testing open_basedir configuration [copy] ***
+
index d49f368ccbd925e079371fda2fe2a5a0e8aa3911..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"));
@@ -32,3 +31,4 @@ bool(false)
 Warning: unlink(copy.txt): No such file or directory in %s on line %d
 bool(false)
 *** Finished testing open_basedir configuration [copy] ***
+
index 2b22f6efb822cf05c08ab48325fec2ae6da36a4c..8691b6457200252e9824201553db1c46a2a9df2d 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--
@@ -85,3 +86,4 @@ object(Directory)#%d (2) {
   resource(%d) of type (stream)
 }
 *** Finished testing open_basedir configuration [dir] ***
+
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 b769608e7b448eb10e68ca12552b3d811e88d9fc..cc054a5b080760cf0f15fdda3949b813ff9d634f 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");
 ?>
@@ -41,3 +42,4 @@ bool(false)
 unicode(0) ""
 unicode(%d) "%s/test/ok/ok.txt"
 *** Finished testing open_basedir configuration [error_log] ***
+
index 6a23dd4f79df9a8c720c0932d8ce12b85971c4b4..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");
 ?>
@@ -45,3 +46,4 @@ Warning: error_log(%s/bad.txt): failed to open stream: %s in %s on line %d
 bool(false)
 bool(true)
 *** Finished testing open_basedir configuration [error_log] ***
+
index 513361b3691c8ed00256b4046cf32fe714bacf14..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");
 ?>
@@ -85,3 +85,4 @@ array(1) {
   string(12) "Hello World!"
 }
 *** Finished testing open_basedir configuration [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 b87c427b44c0041740e6001a22c8fc36d43cc2e2..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");
 ?>
@@ -54,3 +54,4 @@ Warning: file_put_contents(): open_basedir restriction in effect. File%s/test/ba
 Warning: file_put_contents%s/test/bad/bad.txt): failed to open stream: %s in %s on line %d
 bool(false)
 *** Finished testing open_basedir configuration [file_put_contents] ***
+
index 85cb73d4699392f096f155309e69603b38444c70..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"));
@@ -83,3 +83,4 @@ resource(%d) of type (stream)
 resource(%d) of type (stream)
 resource(%d) of type (stream)
 *** Finished testing open_basedir configuration [fopen] ***
+
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..5c1c6c2
--- /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]=>
+  unicode(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 695824d3b19c20ad30ab5ee2c10c1ed715c755ea..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));
@@ -75,3 +75,4 @@ bool(false)
 bool(true)
 bool(true)
 *** Finished testing open_basedir configuration [link] ***
+
index ed6df19ffa185fb723e23b1d0c4b4f447db4f30f..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));
@@ -61,3 +61,4 @@ int(%d)
 Warning: unlink(): open_basedir restriction in effect. File(%s/test/ok/symlink.txt) is not within the allowed path(s): (.) in %s on line %d
 bool(false)
 *** Finished testing open_basedir configuration [linkinfo] ***
+
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 e330d817351f7c9f599f44fd46d4c3531b52f0f7..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--
@@ -70,3 +70,4 @@ resource(%d) of type (stream)
 resource(%d) of type (stream)
 resource(%d) of type (stream)
 *** Finished testing open_basedir configuration [opendir] ***
+
index 51334102909123aa29060b2b39864d3b6160f18e..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));
@@ -73,3 +73,4 @@ bool(false)
 Warning: unlink(): open_basedir restriction in effect. File(%s/test/ok/symlink.txt) is not within the allowed path(s): (.) in %s on line %d
 bool(false)
 *** Finished testing open_basedir configuration [readlink] ***
+
index e512e58d461f5f53228186d5655776753c4d5fcf..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");
 ?>
@@ -44,3 +44,4 @@ bool(false)
 Warning: rename(): open_basedir restriction in effect. File(%s/test/bad/bad.txt) is not within the allowed path(s): (.) in %s on line %d
 bool(false)
 *** Finished testing open_basedir configuration [rename] ***
+
index 8cc4f818c82d763b5b4bd7e1c4c577955b5cec5c..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");
 ?>
@@ -44,3 +44,4 @@ bool(false)
 Warning: rmdir(): open_basedir restriction in effect. File(%s/test/bad) is not within the allowed path(s): (.) in %s on line %d
 bool(false)
 *** Finished testing open_basedir configuration [rmdir] ***
+
index 3b5cc41a55eedeb26ddcab1820cd450eb087716f..0230702f1e1c5eb9c0195babfe0ef0f2eeb95a5e 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
 
@@ -107,3 +107,4 @@ array(3) {
   unicode(6) "ok.txt"
 }
 *** Finished testing open_basedir configuration [scandir] ***
+
index 799e9e4c8af3cf94d3c18c5553e3f2472951467a..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");
@@ -84,3 +84,4 @@ bool(true)
 bool(true)
 bool(true)
 *** Finished testing open_basedir configuration [symlink] ***
+
index 691cae03ada071ae8fcf0299f1c259d5217d3bf2..1bf4f27e6510e77cd263bf1a530aeef48c936f45 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,14 @@ 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)
+unicode(%d) "%s"
+bool(true)
+unicode(%d) "%s"
+bool(true)
 unicode(%d) "%s"
 bool(true)
 *** Finished testing open_basedir configuration [tempnam] ***
+
index 03c7b9e05f0f65b0c2baf7c89ec8fe76b77dd465..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"));
@@ -67,3 +67,4 @@ bool(true)
 bool(true)
 bool(true)
 *** Finished testing open_basedir configuration [touch] ***
+
index e2d025c18a71c9d9a053f6d2eaf2b84c73215f6e..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");
 ?>
@@ -44,3 +44,4 @@ bool(false)
 Warning: unlink(): open_basedir restriction in effect. File(%s/test/bad/bad.txt) is not within the allowed path(s): (.) in %s on line %d
 bool(false)
 *** Finished testing open_basedir configuration [unlink] ***
+