diff options
| -rw-r--r-- | phpBB/includes/functions.php | 2 | ||||
| -rw-r--r-- | tests/functions/is_absolute_test.php | 29 | 
2 files changed, 26 insertions, 5 deletions
| diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index 0217aedb54..b087e1298b 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -846,7 +846,7 @@ function phpbb_is_writable($file)  */  function phpbb_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;  }  /** diff --git a/tests/functions/is_absolute_test.php b/tests/functions/is_absolute_test.php index ada4d7b4de..6d26793d82 100644 --- a/tests/functions/is_absolute_test.php +++ b/tests/functions/is_absolute_test.php @@ -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), + +			// 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), -			// Until we got DIRECTORY_SEPARATOR replaced in that function, -			// test results vary on OS. -			array('c:\windows', DIRECTORY_SEPARATOR == '\\'), -			array('C:\Windows', DIRECTORY_SEPARATOR == '\\'), +			// Relative updir +			array('..\Windows\System32', false), +			array('..\Windows\System32\explorer.exe', false), +			array('../Windows/System32', false), +			array('../Windows/System32/explorer.exe', false),  		);  	} | 
