From: Dave Kelsey Date: Thu, 22 Jan 2009 07:57:04 +0000 (+0000) Subject: fixed subtle bugs regarding attempting to chdir, plus cleanup issues. improved tempna... X-Git-Tag: php-5.4.0alpha1~191^2~4432 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a6de366518b4bdcd2ae2331cffd7b1ea18e54f39;p=php fixed subtle bugs regarding attempting to chdir, plus cleanup issues. improved tempnam test, removed hardcoded line number. tested on windows, linux and linux 64bit. --- diff --git a/tests/security/open_basedir.inc b/tests/security/open_basedir.inc index 7fd0afc8bb..c5de8ca112 100644 --- a/tests/security/open_basedir.inc +++ b/tests/security/open_basedir.inc @@ -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); diff --git a/tests/security/open_basedir_chdir.phpt b/tests/security/open_basedir_chdir.phpt index 9b3debf189..aa8cef52da 100644 --- a/tests/security/open_basedir_chdir.phpt +++ b/tests/security/open_basedir_chdir.phpt @@ -6,7 +6,6 @@ open_basedir=. @@ -68,3 +69,4 @@ bool(true) bool(true) bool(true) *** Finished testing open_basedir configuration [chmod] *** + diff --git a/tests/security/open_basedir_copy.phpt b/tests/security/open_basedir_copy.phpt index a2bdbd52b8..7cb902add0 100644 --- a/tests/security/open_basedir_copy.phpt +++ b/tests/security/open_basedir_copy.phpt @@ -6,7 +6,6 @@ open_basedir=. --CLEAN-- @@ -85,3 +86,4 @@ object(Directory)#%d (2) { resource(%d) of type (stream) } *** Finished testing open_basedir configuration [dir] *** + diff --git a/tests/security/open_basedir_disk_free_space.phpt b/tests/security/open_basedir_disk_free_space.phpt index e3e36e670a..365300ae61 100644 --- a/tests/security/open_basedir_disk_free_space.phpt +++ b/tests/security/open_basedir_disk_free_space.phpt @@ -5,11 +5,11 @@ open_basedir=. --FILE-- --CLEAN-- diff --git a/tests/security/open_basedir_error_log.phpt b/tests/security/open_basedir_error_log.phpt index b769608e7b..cc054a5b08 100644 --- a/tests/security/open_basedir_error_log.phpt +++ b/tests/security/open_basedir_error_log.phpt @@ -6,14 +6,15 @@ error_log= --FILE-- @@ -41,3 +42,4 @@ bool(false) unicode(0) "" unicode(%d) "%s/test/ok/ok.txt" *** Finished testing open_basedir configuration [error_log] *** + diff --git a/tests/security/open_basedir_error_log_variation.phpt b/tests/security/open_basedir_error_log_variation.phpt index 6a23dd4f79..ab182669a8 100644 --- a/tests/security/open_basedir_error_log_variation.phpt +++ b/tests/security/open_basedir_error_log_variation.phpt @@ -5,14 +5,15 @@ open_basedir=. --FILE-- @@ -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] *** + diff --git a/tests/security/open_basedir_file.phpt b/tests/security/open_basedir_file.phpt index 513361b369..ad222e894b 100644 --- a/tests/security/open_basedir_file.phpt +++ b/tests/security/open_basedir_file.phpt @@ -5,14 +5,14 @@ open_basedir=. --FILE-- @@ -85,3 +85,4 @@ array(1) { string(12) "Hello World!" } *** Finished testing open_basedir configuration [file] *** + diff --git a/tests/security/open_basedir_file_get_contents.phpt b/tests/security/open_basedir_file_get_contents.phpt index db117e4775..8ee5ddb793 100644 --- a/tests/security/open_basedir_file_get_contents.phpt +++ b/tests/security/open_basedir_file_get_contents.phpt @@ -5,14 +5,14 @@ open_basedir=. --FILE-- diff --git a/tests/security/open_basedir_file_put_contents.phpt b/tests/security/open_basedir_file_put_contents.phpt index b87c427b44..0235c509b5 100644 --- a/tests/security/open_basedir_file_put_contents.phpt +++ b/tests/security/open_basedir_file_put_contents.phpt @@ -5,14 +5,14 @@ open_basedir=. --FILE-- @@ -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] *** + diff --git a/tests/security/open_basedir_fopen.phpt b/tests/security/open_basedir_fopen.phpt index 85cb73d469..3e236af9d5 100644 --- a/tests/security/open_basedir_fopen.phpt +++ b/tests/security/open_basedir_fopen.phpt @@ -5,8 +5,8 @@ open_basedir=. --FILE-- +--CLEAN-- + +--EXPECT-- +array(1) { + [0]=> + unicode(12) "../globtest1" +} + diff --git a/tests/security/open_basedir_is_executable.phpt b/tests/security/open_basedir_is_executable.phpt index 1bab860557..375d4277cd 100644 --- a/tests/security/open_basedir_is_executable.phpt +++ b/tests/security/open_basedir_is_executable.phpt @@ -5,14 +5,14 @@ open_basedir=. --FILE-- diff --git a/tests/security/open_basedir_link.phpt b/tests/security/open_basedir_link.phpt index 695824d3b1..82f97d6b09 100644 --- a/tests/security/open_basedir_link.phpt +++ b/tests/security/open_basedir_link.phpt @@ -11,23 +11,23 @@ open_basedir=. --FILE-- --CLEAN-- diff --git a/tests/security/open_basedir_opendir.phpt b/tests/security/open_basedir_opendir.phpt index e330d81735..774b853569 100644 --- a/tests/security/open_basedir_opendir.phpt +++ b/tests/security/open_basedir_opendir.phpt @@ -5,13 +5,13 @@ open_basedir=. --FILE-- --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] *** + diff --git a/tests/security/open_basedir_readlink.phpt b/tests/security/open_basedir_readlink.phpt index 5133410290..a632dce243 100644 --- a/tests/security/open_basedir_readlink.phpt +++ b/tests/security/open_basedir_readlink.phpt @@ -11,25 +11,25 @@ open_basedir=. --FILE-- @@ -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] *** + diff --git a/tests/security/open_basedir_rmdir.phpt b/tests/security/open_basedir_rmdir.phpt index 8cc4f818c8..c1d4b6b14b 100644 --- a/tests/security/open_basedir_rmdir.phpt +++ b/tests/security/open_basedir_rmdir.phpt @@ -5,14 +5,14 @@ open_basedir=. --FILE-- @@ -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] *** + diff --git a/tests/security/open_basedir_scandir.phpt b/tests/security/open_basedir_scandir.phpt index 3b5cc41a55..0230702f1e 100644 --- a/tests/security/open_basedir_scandir.phpt +++ b/tests/security/open_basedir_scandir.phpt @@ -5,13 +5,13 @@ open_basedir=. --FILE-- --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] *** + diff --git a/tests/security/open_basedir_symlink.phpt b/tests/security/open_basedir_symlink.phpt index 799e9e4c8a..cdc8e7bcc4 100644 --- a/tests/security/open_basedir_symlink.phpt +++ b/tests/security/open_basedir_symlink.phpt @@ -11,30 +11,30 @@ open_basedir=. --FILE-- @@ -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] *** +