Merge pull request #975 from virtualtam/robustness
Improve robustness for zlib and file operations
This commit is contained in:
commit
7c670b39a2
3 changed files with 20 additions and 12 deletions
|
@ -168,14 +168,15 @@ public static function checkPHPVersion($minVersion, $curVersion)
|
||||||
public static function checkResourcePermissions($conf)
|
public static function checkResourcePermissions($conf)
|
||||||
{
|
{
|
||||||
$errors = array();
|
$errors = array();
|
||||||
|
$rainTplDir = rtrim($conf->get('resource.raintpl_tpl'), '/');
|
||||||
|
|
||||||
// Check script and template directories are readable
|
// Check script and template directories are readable
|
||||||
foreach (array(
|
foreach (array(
|
||||||
'application',
|
'application',
|
||||||
'inc',
|
'inc',
|
||||||
'plugins',
|
'plugins',
|
||||||
$conf->get('resource.raintpl_tpl'),
|
$rainTplDir,
|
||||||
$conf->get('resource.raintpl_tpl').'/'.$conf->get('resource.theme'),
|
$rainTplDir.'/'.$conf->get('resource.theme'),
|
||||||
) as $path) {
|
) as $path) {
|
||||||
if (! is_readable(realpath($path))) {
|
if (! is_readable(realpath($path))) {
|
||||||
$errors[] = '"'.$path.'" directory is not readable';
|
$errors[] = '"'.$path.'" directory is not readable';
|
||||||
|
|
|
@ -50,7 +50,8 @@ public static function writeFlatDB($file, $content)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read data from a file containing Shaarli database format content.
|
* Read data from a file containing Shaarli database format content.
|
||||||
* If the file isn't readable or doesn't exists, default data will be returned.
|
*
|
||||||
|
* If the file isn't readable or doesn't exist, default data will be returned.
|
||||||
*
|
*
|
||||||
* @param string $file File path.
|
* @param string $file File path.
|
||||||
* @param mixed $default The default value to return if the file isn't readable.
|
* @param mixed $default The default value to return if the file isn't readable.
|
||||||
|
@ -61,16 +62,21 @@ public static function readFlatDB($file, $default = null)
|
||||||
{
|
{
|
||||||
// Note that gzinflate is faster than gzuncompress.
|
// Note that gzinflate is faster than gzuncompress.
|
||||||
// See: http://www.php.net/manual/en/function.gzdeflate.php#96439
|
// See: http://www.php.net/manual/en/function.gzdeflate.php#96439
|
||||||
if (is_readable($file)) {
|
if (! is_readable($file)) {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = file_get_contents($file);
|
||||||
|
if ($data == '') {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
|
||||||
return unserialize(
|
return unserialize(
|
||||||
gzinflate(
|
gzinflate(
|
||||||
base64_decode(
|
base64_decode(
|
||||||
substr(file_get_contents($file), strlen(self::$phpPrefix), -strlen(self::$phpSuffix))
|
substr($data, strlen(self::$phpPrefix), -strlen(self::$phpSuffix))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $default;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ class ThemeUtils
|
||||||
*/
|
*/
|
||||||
public static function getThemes($tplDir)
|
public static function getThemes($tplDir)
|
||||||
{
|
{
|
||||||
|
$tplDir = rtrim($tplDir, '/');
|
||||||
$allTheme = glob($tplDir.'/*', GLOB_ONLYDIR);
|
$allTheme = glob($tplDir.'/*', GLOB_ONLYDIR);
|
||||||
$themes = [];
|
$themes = [];
|
||||||
foreach ($allTheme as $value) {
|
foreach ($allTheme as $value) {
|
||||||
|
|
Loading…
Reference in a new issue