diff options
| author | Marc Alexander <admin@m-a-styles.de> | 2015-02-06 10:19:39 +0100 | 
|---|---|---|
| committer | Marc Alexander <admin@m-a-styles.de> | 2015-02-06 10:19:39 +0100 | 
| commit | cd85f1b632778d6b7e8915a2507c2bd7d40a5d0e (patch) | |
| tree | 7f5b00319e83f58fb7e77a709d813d0d74f54991 /phpBB/includes/functions_acp.php | |
| parent | 1e4853507abb3fc50d6d7edd048d3cf88e905f1c (diff) | |
| parent | 7c5d872344a59f0fe2323d34885e543a09111ca7 (diff) | |
| download | forums-cd85f1b632778d6b7e8915a2507c2bd7d40a5d0e.tar forums-cd85f1b632778d6b7e8915a2507c2bd7d40a5d0e.tar.gz forums-cd85f1b632778d6b7e8915a2507c2bd7d40a5d0e.tar.bz2 forums-cd85f1b632778d6b7e8915a2507c2bd7d40a5d0e.tar.xz forums-cd85f1b632778d6b7e8915a2507c2bd7d40a5d0e.zip  | |
Merge branch 'ticket/13568' into ticket/13568-asc
Conflicts:
	phpBB/adm/index.php
	phpBB/includes/acp/acp_attachments.php
Diffstat (limited to 'phpBB/includes/functions_acp.php')
| -rw-r--r-- | phpBB/includes/functions_acp.php | 13 | 
1 files changed, 9 insertions, 4 deletions
diff --git a/phpBB/includes/functions_acp.php b/phpBB/includes/functions_acp.php index e30c6da505..a53a54368e 100644 --- a/phpBB/includes/functions_acp.php +++ b/phpBB/includes/functions_acp.php @@ -550,6 +550,9 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)  				$cfg_array[$config_name] = trim($destination); +			// Absolute file path +			case 'absolute_path': +			case 'absolute_path_writable':  			// Path being relative (still prefixed by phpbb_root_path), but with the ability to escape the root dir...  			case 'path':  			case 'wpath': @@ -568,20 +571,22 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)  					break;  				} -				if (!file_exists($phpbb_root_path . $cfg_array[$config_name])) +				$path = in_array($config_definition['validate'], array('wpath', 'path', 'rpath', 'rwpath')) ? $phpbb_root_path . $cfg_array[$config_name] : $cfg_array[$config_name]; + +				if (!file_exists($path))  				{  					$error[] = sprintf($user->lang['DIRECTORY_DOES_NOT_EXIST'], $cfg_array[$config_name]);  				} -				if (file_exists($phpbb_root_path . $cfg_array[$config_name]) && !is_dir($phpbb_root_path . $cfg_array[$config_name])) +				if (file_exists($path) && !is_dir($path))  				{  					$error[] = sprintf($user->lang['DIRECTORY_NOT_DIR'], $cfg_array[$config_name]);  				}  				// Check if the path is writable -				if ($config_definition['validate'] == 'wpath' || $config_definition['validate'] == 'rwpath') +				if ($config_definition['validate'] == 'wpath' || $config_definition['validate'] == 'rwpath' || $config_definition['validate'] === 'absolute_path_writable')  				{ -					if (file_exists($phpbb_root_path . $cfg_array[$config_name]) && !phpbb_is_writable($phpbb_root_path . $cfg_array[$config_name])) +					if (file_exists($path) && !phpbb_is_writable($path))  					{  						$error[] = sprintf($user->lang['DIRECTORY_NOT_WRITABLE'], $cfg_array[$config_name]);  					}  | 
