X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fabook_local_file.php;h=61b0e0ce1be5aae08cba7f6ef73f2ce5ea05a765;hb=ba0d44609ab8bc4e5ec05d0846dfa055705ee039;hp=ca6119324ee1d2d844ac176caff591fb76a7488e;hpb=45df3062c96fb474ea804b444da1857782c999aa;p=squirrelmail.git diff --git a/functions/abook_local_file.php b/functions/abook_local_file.php index ca611932..61b0e0ce 100644 --- a/functions/abook_local_file.php +++ b/functions/abook_local_file.php @@ -3,7 +3,7 @@ /** * abook_local_file.php * - * Copyright (c) 1999-2002 The SquirrelMail Project Team + * Copyright (c) 1999-2003 The SquirrelMail Project Team * Licensed under the GNU GPL. For full terms see the file COPYING. * * Backend for addressbook as a pipe separated file @@ -135,23 +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); - copy( $this->filename .'.tmp' , $this->filename); - unlink( $this->filename .'.tmp'); + if (!@copy($this->filename . '.tmp' , $this->filename)) { + return $this->set_error($this->filename . ':' . _("Unable to update")); + } + @unlink($this->filename . '.tmp'); $this->unlock(); $this->open(true); return true; @@ -378,4 +384,4 @@ class abook_local_file extends addressbook_backend { } } /* End of class abook_local_file */ -?> +?> \ No newline at end of file