1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-03-13 20:28:44 +01:00

[ticket/11545] Remove DIRECTORY_SEPARATOR dependency from is_absolute

The given path is an absolute path in general, just not on our current system.

PHPBB3-11545
This commit is contained in:
Joas Schilling 2013-05-16 17:30:23 +02:00
parent c6de880cdb
commit 38dbfc17a7
2 changed files with 28 additions and 7 deletions

View File

@ -1005,7 +1005,7 @@ if (!function_exists('stripos'))
*/
function is_absolute($path)
{
return (isset($path[0]) && $path[0] == '/' || (DIRECTORY_SEPARATOR == '\\' && preg_match('#^[a-z]:[/\\\]#i', $path))) ? true : false;
return (isset($path[0]) && $path[0] == '/' || preg_match('#^[a-z]:[/\\\]#i', $path)) ? true : false;
}
/**

View File

@ -14,14 +14,35 @@ class phpbb_functions_is_absolute_test extends phpbb_test_case
static public function is_absolute_data()
{
return array(
// Empty
array('', false),
array('/etc/phpbb', true),
array('etc/phpbb', false),
// Until we got DIRECTORY_SEPARATOR replaced in that function,
// test results vary on OS.
array('c:\windows', DIRECTORY_SEPARATOR == '\\'),
array('C:\Windows', DIRECTORY_SEPARATOR == '\\'),
// Absolute unix style
array('/etc/phpbb', true),
// Unix does not support \ so that is not an absolute path
array('\etc\phpbb', false),
// Absolute windows style
array('c:\windows', true),
array('C:\Windows', true),
array('c:/windows', true),
array('C:/Windows', true),
// Executable
array('etc/phpbb', false),
array('explorer.exe', false),
// Relative subdir
array('Windows\System32', false),
array('Windows\System32\explorer.exe', false),
array('Windows/System32', false),
array('Windows/System32/explorer.exe', false),
// Relative updir
array('..\Windows\System32', false),
array('..\Windows\System32\explorer.exe', false),
array('../Windows/System32', false),
array('../Windows/System32/explorer.exe', false),
);
}