From: Dave Kelsey Date: Thu, 22 Jan 2009 07:57:09 +0000 (+0000) Subject: fixed subtle bugs regarding attempting to chdir, plus cleanup issues. improved tempna... X-Git-Tag: php-5.2.9RC1~61 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=81af2ad666ab50fb45d6e25754c99be899e73505;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 32ed4eb1ec..aa8cef52da 100644 --- a/tests/security/open_basedir_chdir.phpt +++ b/tests/security/open_basedir_chdir.phpt @@ -6,7 +6,6 @@ open_basedir=. diff --git a/tests/security/open_basedir_copy.phpt b/tests/security/open_basedir_copy.phpt index 9faaa82ac0..7cb902add0 100644 --- a/tests/security/open_basedir_copy.phpt +++ b/tests/security/open_basedir_copy.phpt @@ -6,7 +6,6 @@ open_basedir=. --CLEAN-- 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 581dd3f57e..e89e190215 100644 --- a/tests/security/open_basedir_error_log.phpt +++ b/tests/security/open_basedir_error_log.phpt @@ -6,14 +6,15 @@ error_log= --FILE-- diff --git a/tests/security/open_basedir_error_log_variation.phpt b/tests/security/open_basedir_error_log_variation.phpt index d169a213e9..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-- diff --git a/tests/security/open_basedir_file.phpt b/tests/security/open_basedir_file.phpt index 36daa54e00..ad222e894b 100644 --- a/tests/security/open_basedir_file.phpt +++ b/tests/security/open_basedir_file.phpt @@ -5,14 +5,14 @@ open_basedir=. --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 720c81dfe2..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-- diff --git a/tests/security/open_basedir_fopen.phpt b/tests/security/open_basedir_fopen.phpt index e90bf3e2bc..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]=> + string(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 a54c22f4b6..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 a935d5655f..774b853569 100644 --- a/tests/security/open_basedir_opendir.phpt +++ b/tests/security/open_basedir_opendir.phpt @@ -5,13 +5,13 @@ open_basedir=. --FILE-- --CLEAN-- diff --git a/tests/security/open_basedir_readlink.phpt b/tests/security/open_basedir_readlink.phpt index cbba4307e5..a632dce243 100644 --- a/tests/security/open_basedir_readlink.phpt +++ b/tests/security/open_basedir_readlink.phpt @@ -11,25 +11,25 @@ open_basedir=. --FILE-- diff --git a/tests/security/open_basedir_rmdir.phpt b/tests/security/open_basedir_rmdir.phpt index b4d61f8b76..c1d4b6b14b 100644 --- a/tests/security/open_basedir_rmdir.phpt +++ b/tests/security/open_basedir_rmdir.phpt @@ -5,14 +5,14 @@ open_basedir=. --FILE-- diff --git a/tests/security/open_basedir_scandir.phpt b/tests/security/open_basedir_scandir.phpt index 77987402c6..caffaa1e5d 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 diff --git a/tests/security/open_basedir_symlink.phpt b/tests/security/open_basedir_symlink.phpt index 3aaa07b820..cdc8e7bcc4 100644 --- a/tests/security/open_basedir_symlink.phpt +++ b/tests/security/open_basedir_symlink.phpt @@ -11,30 +11,30 @@ open_basedir=. --FILE--