mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
Merge pull request #6546 from Derky/ticket/17189
[Ticket/17189] Improve installer file permission checks
This commit is contained in:
commit
233d6a0a69
4 changed files with 8 additions and 6 deletions
|
@ -159,9 +159,9 @@ function installer_shutdown_function($display_errors)
|
||||||
installer_class_loader($phpbb_root_path, $phpEx);
|
installer_class_loader($phpbb_root_path, $phpEx);
|
||||||
$supported_error_levels = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_USER_DEPRECATED;
|
$supported_error_levels = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_USER_DEPRECATED;
|
||||||
|
|
||||||
$cache = new \phpbb\cache\driver\file(__DIR__ . '/../cache/installer');
|
$cache = new \phpbb\cache\driver\file(__DIR__ . '/../cache/installer/');
|
||||||
$filesystem = new \phpbb\filesystem\filesystem();
|
$filesystem = new \phpbb\filesystem\filesystem();
|
||||||
if (strpos($error['file'], $filesystem->realpath($cache->cache_dir)) !== false)
|
if (strpos($error['file'], $filesystem->realpath($cache->cache_dir)) !== false && is_writable($cache->cache_dir))
|
||||||
{
|
{
|
||||||
$file_age = @filemtime($error['file']);
|
$file_age = @filemtime($error['file']);
|
||||||
|
|
||||||
|
|
4
phpBB/phpbb/cache/driver/file.php
vendored
4
phpBB/phpbb/cache/driver/file.php
vendored
|
@ -37,9 +37,9 @@ class file extends \phpbb\cache\driver\base
|
||||||
$this->cache_dir = !is_null($cache_dir) ? $cache_dir : $phpbb_container->getParameter('core.cache_dir');
|
$this->cache_dir = !is_null($cache_dir) ? $cache_dir : $phpbb_container->getParameter('core.cache_dir');
|
||||||
$this->filesystem = new \phpbb\filesystem\filesystem();
|
$this->filesystem = new \phpbb\filesystem\filesystem();
|
||||||
|
|
||||||
if (!is_dir($this->cache_dir))
|
if ($this->filesystem->is_writable(dirname($this->cache_dir)) && !is_dir($this->cache_dir))
|
||||||
{
|
{
|
||||||
@mkdir($this->cache_dir, 0777, true);
|
mkdir($this->cache_dir, 0777, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -398,13 +398,13 @@ class filesystem implements filesystem_interface
|
||||||
$file_gid = @filegroup($file);
|
$file_gid = @filegroup($file);
|
||||||
|
|
||||||
// Change owner
|
// Change owner
|
||||||
if ($file_uid !== $this->chmod_info['common_owner'])
|
if (is_writable($file) && $file_uid !== $this->chmod_info['common_owner'])
|
||||||
{
|
{
|
||||||
$this->chown($file, $this->chmod_info['common_owner'], $recursive);
|
$this->chown($file, $this->chmod_info['common_owner'], $recursive);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Change group
|
// Change group
|
||||||
if ($file_gid !== $this->chmod_info['common_group'])
|
if (is_writable($file) && $file_gid !== $this->chmod_info['common_group'])
|
||||||
{
|
{
|
||||||
$this->chgrp($file, $this->chmod_info['common_group'], $recursive);
|
$this->chgrp($file, $this->chmod_info['common_group'], $recursive);
|
||||||
}
|
}
|
||||||
|
|
|
@ -217,6 +217,7 @@ class check_filesystem extends \phpbb\install\task_base
|
||||||
catch (\phpbb\filesystem\exception\filesystem_exception $e)
|
catch (\phpbb\filesystem\exception\filesystem_exception $e)
|
||||||
{
|
{
|
||||||
// Do nothing
|
// Do nothing
|
||||||
|
$this->response->add_warning_message($e->getMessage(), $e->get_filename());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -232,6 +233,7 @@ class check_filesystem extends \phpbb\install\task_base
|
||||||
}
|
}
|
||||||
catch (\phpbb\filesystem\exception\filesystem_exception $e)
|
catch (\phpbb\filesystem\exception\filesystem_exception $e)
|
||||||
{
|
{
|
||||||
|
$this->response->add_warning_message($e->getMessage(), $e->get_filename());
|
||||||
// Do nothing
|
// Do nothing
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue