diff --git a/libs/Smarty.class.php b/libs/Smarty.class.php index 2d0856b7..8c9cca28 100644 --- a/libs/Smarty.class.php +++ b/libs/Smarty.class.php @@ -646,21 +646,7 @@ class Smarty extends Smarty_Internal_TemplateBase * @var int */ public $start_time = 0; - - /** - * default file permissions - * - * @var int - */ - public $_file_perms = 0644; - - /** - * default dir permissions - * - * @var int - */ - public $_dir_perms = 0771; - + /** * required by the compiler for BC * diff --git a/libs/sysplugins/smarty_internal_write_file.php b/libs/sysplugins/smarty_internal_write_file.php index 9ecc7c0c..fb2fcedd 100644 --- a/libs/sysplugins/smarty_internal_write_file.php +++ b/libs/sysplugins/smarty_internal_write_file.php @@ -29,14 +29,16 @@ class Smarty_Internal_Write_File { $_error_reporting = error_reporting(); error_reporting($_error_reporting & ~E_NOTICE & ~E_WARNING); - if ($smarty->_file_perms !== null) { + $_file_perms = property_exists($smarty, '_file_perms') ? $smarty->_file_perms : 0644; + $_dir_perms = property_exists($smarty, '_dir_perms') ? (isset($smarty->_dir_perms) ? $smarty->_dir_perms : 0777) : 0771; + if ($_file_perms !== null) { $old_umask = umask(0); } $_dirpath = dirname($_filepath); // if subdirs, create dir structure if ($_dirpath !== '.' && !file_exists($_dirpath)) { - mkdir($_dirpath, $smarty->_dir_perms === null ? 0777 : $smarty->_dir_perms, true); + mkdir($_dirpath, $_dir_perms, true); } // write to tmp file, then move to overt file lock race condition @@ -76,9 +78,9 @@ class Smarty_Internal_Write_File error_reporting($_error_reporting); throw new SmartyException("unable to write file {$_filepath}"); } - if ($smarty->_file_perms !== null) { + if ($_file_perms !== null) { // set file permissions - chmod($_filepath, $smarty->_file_perms); + chmod($_filepath, $_file_perms); umask($old_umask); } error_reporting($_error_reporting);