* net/tramp.el (tramp-do-copy-or-rename-file-out-of-band): Protect
authorMichael Albinus <michael.albinus@gmx.de>
Mon, 22 Feb 2010 13:48:52 +0000 (14:48 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Mon, 22 Feb 2010 13:48:52 +0000 (14:48 +0100)
setting the modes by `ignore-errors'.  It might fail, for example
if the file is not owned by the user but the group.
(tramp-handle-write-region): Ensure, that `tmpfile' is always readable.

lisp/ChangeLog
lisp/net/tramp.el

index c33598f..541c723 100644 (file)
@@ -1,3 +1,10 @@
+2010-02-22  Michael Albinus  <michael.albinus@gmx.de>
+
+       * net/tramp.el (tramp-do-copy-or-rename-file-out-of-band): Protect
+       setting the modes by `ignore-errors'.  It might fail, for example
+       if the file is not owned by the user but the group.
+       (tramp-handle-write-region): Ensure, that `tmpfile' is always readable.
+
 2010-02-21  Chong Yidong  <cyd@stupidchicken.com>
 
        * files.el (directory-listing-before-filename-regexp): Use
index eed5a41..102117f 100644 (file)
@@ -3926,7 +3926,8 @@ The method used must be an out-of-band method."
 
        ;; Set the mode.
        (unless (and keep-date copy-keep-date)
-         (set-file-modes newname (tramp-default-file-modes filename))))
+         (ignore-errors
+           (set-file-modes newname (tramp-default-file-modes filename)))))
 
       ;; If the operation was `rename', delete the original file.
       (unless (eq op 'copy)
@@ -5031,7 +5032,10 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
          ;; filename does not exist (eq modes nil) it has been
          ;; renamed to the backup file.  This case `save-buffer'
          ;; handles permissions.
-         (when modes (set-file-modes tmpfile modes))
+         ;; Ensure, that it is still readable.
+         (when modes
+           (set-file-modes
+            tmpfile (logior (or modes 0) (tramp-octal-to-decimal "0400"))))
 
          ;; This is a bit lengthy due to the different methods
          ;; possible for file transfer.  First, we check whether the