diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index ca1fff9a9236bbbd4e4ec196037db5a6ad9b8bb3..417c9284f6814cd39890be28ae16cf3386b3970f 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3727,10 +3727,10 @@ function get_exdir($num,$level=3,$alpha=0,$withoutslash=0) * * @param string $dir Directory to create (Separator must be '/'. Example: '/mydir/mysubdir') * @param string $dataroot Data root directory (To avoid having the data root in the loop. Using this will also lost the warning on first dir PHP has no permission when open_basedir is used) - * @param int $newmask Mask for new file (0 by default means $conf->global->MAIN_UMASK). Example: '0444' + * @param int $newmask Mask for new file (Defaults to $conf->global->MAIN_UMASK or 0755 if unavailable). Example: '0444' * @return int < 0 if KO, 0 = already exists, > 0 if OK */ -function dol_mkdir($dir, $dataroot='', $newmask=0) +function dol_mkdir($dir, $dataroot='', $newmask=null) { global $conf; @@ -3768,7 +3768,9 @@ function dol_mkdir($dir, $dataroot='', $newmask=0) umask(0); $dirmaskdec=octdec($newmask); - if (empty($newmask) && ! empty($conf->global->MAIN_UMASK)) $dirmaskdec=octdec($conf->global->MAIN_UMASK); + if (empty($newmask)) { + $dirmaskdec = empty( $conf->global->MAIN_UMASK ) ? octdec( '0755' ) : octdec( $conf->global->MAIN_UMASK ); + } $dirmaskdec |= octdec('0111'); // Set x bit required for directories if (! @mkdir($ccdir_osencoded, $dirmaskdec)) {