From: stekkel Date: Tue, 15 Oct 2002 22:04:47 +0000 (+0000) Subject: Merge from stable (Valcor's fixes) X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=commitdiff_plain;h=dabef6fd44ccf5205fd7c8b211613b2f7a11cf2e Merge from stable (Valcor's fixes) git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@3870 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- diff --git a/functions/abook_local_file.php b/functions/abook_local_file.php index 8b3198d2..d66feb7d 100644 --- a/functions/abook_local_file.php +++ b/functions/abook_local_file.php @@ -135,25 +135,29 @@ class abook_local_file extends addressbook_backend { * NOTE! Previous locks are broken by this function */ function overwrite(&$rows) { $this->unlock(); - $newfh = @fopen($this->filename .'.tmp', 'w'); + $newfh = @fopen($this->filename.'.tmp', 'w'); + if(!$newfh) { - return $this->set_error($this->filename .'.tmp: '. _("Open failed")); + return $this->set_error($this->filename. '.tmp:' . _("Open failed")); } - for($i = 0 ; $i < sizeof($rows) ; $i++) { + for($i = 0, $cnt=sizeof($rows) ; $i < $cnt ; $i++) { if(is_array($rows[$i])) { - for($j = 0 ; $j < count($rows[$i]) ; $j++) { + for($j = 0, $cnt_part=count($rows[$i]) ; $j < $cnt_part ; $j++) { $rows[$i][$j] = $this->quotevalue($rows[$i][$j]); } - fwrite($newfh, join('|', $rows[$i]) . "\n"); + $tmpwrite = @fwrite($newfh, join('|', $rows[$i]) . "\n"); + if ($tmpwrite == -1) { + return $this->set_error($this->filename . '.tmp:' . _("Write failed")); + } } } fclose($newfh); if (!@copy($this->filename . '.tmp' , $this->filename)) { - return $this->set_error($file->filename.':' . _("Unable to update")); + return $this->set_error($this->filename . ':' . _("Unable to update")); } - @unlink( $this->filename .'.tmp'); + @unlink($this->filename . '.tmp'); $this->unlock(); $this->open(true); return true; @@ -380,4 +384,4 @@ class abook_local_file extends addressbook_backend { } } /* End of class abook_local_file */ -?> +?> \ No newline at end of file diff --git a/functions/file_prefs.php b/functions/file_prefs.php index 8dacc32a..329ce954 100644 --- a/functions/file_prefs.php +++ b/functions/file_prefs.php @@ -79,19 +79,12 @@ function getPref($data_dir, $username, $string, $default = '') { global $prefs_cache; $result = ''; - $result = do_hook_function('get_pref_override', array($username, $string)); - - if ($result == '') { - cachePrefValues($data_dir, $username); + cachePrefValues($data_dir, $username); - if (isset($prefs_cache[$string])) { - $result = $prefs_cache[$string]; - } else { - $result = do_hook_function('get_pref', array($username, $string)); - if ($result == '') { - $result = $default; - } - } + if (isset($prefs_cache[$string])) { + $result = $prefs_cache[$string]; + } else { + $result = $default; } return ($result); @@ -106,21 +99,24 @@ function savePrefValues($data_dir, $username) { $filename = getHashedFile($username, $data_dir, "$username.pref"); /* Open the file for writing, or else display an error to the user. */ - if(!$file = @fopen($filename.'.tmp', 'w')) + if(!$file = @fopen($filename, 'w')) { include_once(SM_PATH . 'functions/display_messages.php'); - logout_error( sprintf( _("Preference file, %s, could not be opened. Contact your system administrator to resolve this issue."), $filename.'.tmp') ); + logout_error( sprintf( _("Preference file, %s, could not be opened. Contact your system administrator to resolve this issue."), $filename) ); exit; } - foreach ($prefs_cache as $Key => $Value) { if (isset($Value)) { - fwrite($file, $Key . '=' . $Value . "\n"); + $tmpwrite = @fwrite($file, $Key . '=' . $Value . "\n"); + if ($tmpwrite == -1) { + logout_error( sprintf( _("Preference file, %s, could not be written. Contact your system administrator to resolve this issue.") , $filename . '.tmp') ); + exit; + } } } fclose($file); - copy($filename.'.tmp', $filename); - unlink($filename.'.tmp'); + @copy($filename . '.tmp',$filename); + @unlink($filename . '.tmp'); chmod($filename, 0600); } @@ -210,16 +206,22 @@ function checkForPrefs($data_dir, $username, $filename = '') { function setSig($data_dir, $username, $number, $value) { $filename = getHashedFile($username, $data_dir, "$username.si$number"); /* Open the file for writing, or else display an error to the user. */ - if(!$file = @fopen($filename.'.tmp', 'w')) - { - include_once(SM_PATH . '/functions/display_messages.php' ); - logout_error( sprintf( _("Signature file, %s, could not be opened. Contact your system administrator to resolve this issue."), $filename.'.tmp') ); + if(!$file = @fopen("$filename.tmp", 'w')) { + include_once( '../functions/display_messages.php' ); + logout_error( sprintf( _("Signature file, %s, could not be opened. Contact your system administrator to resolve this issue."), $filename . '.tmp') ); exit; } - fwrite($file, $value); + $tmpwrite = @fwrite($file, $value); + if ($tmpwrite == -1) { + include_once( '../functions/display_messages.php' ); + logout_error( sprintf( _("Signature file, %s, could not be written. Contact your system administrator to resolve this issue.") , $filename . '.tmp')); + exit; + } fclose($file); - copy($filename.'.tmp',$filename); - unlink($filename.'.tmp'); + @copy($filename . '.tmp',$filename); + @unlink($filename . '.tmp'); + chmod($filename, 0600); + } /**