From 44881d272282937c9bb745f462c947319d404dd0 Mon Sep 17 00:00:00 2001 From: Troels Liebe Bentsen Date: Fri, 24 Feb 2006 22:16:55 +0100 Subject: Fix umask bug and do a code cleanup of chmod/mkdir usage so set the correct permissions, this should also fix problems with dokuwiki making setuid files on some umasks. * Don't set the umask() anymore, this is not good form and we don't really know what is it in the old code anyway as it was not done properly. * Retire the dmask config option introduce 2 new ones called fmode and dmode, this is more in line with posix and should make more sense. * Use chmod for setting the correct permissions but only if it's needed. * Set changing of permissions off by default as i should work properly in most Apache setups without and it does not make sense on windows anyway. darcs-hash:20060224211655-ee6b9-68f7bb59417d6f0033cfd3764146923daa4dcf1b.gz --- lib/exe/detail.php | 3 --- lib/exe/indexer.php | 1 + lib/exe/media.php | 7 +------ lib/plugins/plugin/admin.php | 1 - 4 files changed, 2 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/exe/detail.php b/lib/exe/detail.php index 0b6af379b..2907acfbf 100644 --- a/lib/exe/detail.php +++ b/lib/exe/detail.php @@ -55,7 +55,4 @@ header('Content-Type: text/html; charset=utf-8'); include(template('detail.php')); - //restore old umask - umask($conf['oldumask']); - ?> diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php index 19eea767f..8fe9e35d4 100644 --- a/lib/exe/indexer.php +++ b/lib/exe/indexer.php @@ -60,6 +60,7 @@ function runIndexer(){ return false; } } + if(isset($conf['dmask'])) { chmod($lock, $conf['dmask']); } require_once(DOKU_INC.'inc/indexer.php'); diff --git a/lib/exe/media.php b/lib/exe/media.php index 47af3c4d3..bbdf1814e 100644 --- a/lib/exe/media.php +++ b/lib/exe/media.php @@ -68,9 +68,6 @@ }else{ include(template('media.php')); } - - //restore old umask - umask($conf['oldumask']); /**********************************************/ @@ -116,9 +113,7 @@ function media_upload($NS,$AUTH){ $types = array_map(create_function('$q','return preg_quote($q,"/");'),$types); $regex = join('|',$types); - // we set the umask here but this doesn't really help // because a temp file was created already - umask($conf['umask']); if(preg_match('/\.('.$regex.')$/i',$fn)){ //check for overwrite if(@file_exists($fn) && (!$_POST['ow'] || $AUTH < AUTH_DELETE)){ @@ -129,7 +124,7 @@ function media_upload($NS,$AUTH){ io_makeFileDir($fn); if(move_uploaded_file($file['tmp_name'], $fn)) { // set the correct permission here - chmod($fn, $conf['fmode'] & ~$conf['umask']); + if(isset($conf['fmask'])) { chmod($fn, $conf['fmask']); } msg($lang['uploadsucc'],1); return true; }else{ diff --git a/lib/plugins/plugin/admin.php b/lib/plugins/plugin/admin.php index 7715d10ff..92df52b61 100644 --- a/lib/plugins/plugin/admin.php +++ b/lib/plugins/plugin/admin.php @@ -587,7 +587,6 @@ class ap_manage { function ap_mkdir($d) { global $conf; - umask($conf['umask']); $ok = io_mkdir_p($d); return $ok; } -- cgit v1.2.3