[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/files.el,v
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/files.el,v |
Date: |
Wed, 22 Aug 2007 03:49:15 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Glenn Morris <gm> 07/08/22 03:49:15
Index: files.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/files.el,v
retrieving revision 1.919
retrieving revision 1.920
diff -u -b -r1.919 -r1.920
--- files.el 13 Aug 2007 13:40:58 -0000 1.919
+++ files.el 22 Aug 2007 03:49:15 -0000 1.920
@@ -3173,6 +3173,11 @@
(defun backup-buffer-copy (from-name to-name modes)
(let ((umask (default-file-modes)))
+ (dir (or (file-name-directory to-name)
+ default-directory)))
+ ;; Can't delete or create files in a read-only directory.
+ (unless (file-writable-p dir)
+ (signal 'file-error (list "Directory is not writable" dir)))
(unwind-protect
(progn
;; Create temp files with strict access rights. It's easy to
@@ -3181,6 +3186,11 @@
(set-default-file-modes ?\700)
(while (condition-case ()
(progn
+ ;; If we allow for the possibility of something
+ ;; creating the file between delete and copy
+ ;; (below), we must also allow for the
+ ;; possibility of something deleting it between
+ ;; a file-exists-p check and a delete.
(condition-case nil
(delete-file to-name)
(file-error nil))
@@ -3189,6 +3199,10 @@
(file-already-exists t))
;; The file was somehow created by someone else between
;; `delete-file' and `copy-file', so let's try again.
+ ;; Does that every actually happen in practice?
+ ;; This is a potential infloop, which seems bad...
+ ;; rms says "I think there is also a possible race
+ ;; condition for making backup files" (emacs-devel 20070821).
nil))
;; Reset the umask.
(set-default-file-modes umask)))
- [Emacs-diffs] Changes to emacs/lisp/files.el,v, Michael Albinus, 2007/08/05
- [Emacs-diffs] Changes to emacs/lisp/files.el,v, Michael Albinus, 2007/08/05
- [Emacs-diffs] Changes to emacs/lisp/files.el,v, Miles Bader, 2007/08/13
- [Emacs-diffs] Changes to emacs/lisp/files.el,v,
Glenn Morris <=
- [Emacs-diffs] Changes to emacs/lisp/files.el,v, Glenn Morris, 2007/08/22
- [Emacs-diffs] Changes to emacs/lisp/files.el,v, Glenn Morris, 2007/08/23
- [Emacs-diffs] Changes to emacs/lisp/files.el,v, Glenn Morris, 2007/08/23
- [Emacs-diffs] Changes to emacs/lisp/files.el,v, Glenn Morris, 2007/08/24
- [Emacs-diffs] Changes to emacs/lisp/files.el,v, Juri Linkov, 2007/08/25
- [Emacs-diffs] Changes to emacs/lisp/files.el,v, Miles Bader, 2007/08/29
- [Emacs-diffs] Changes to emacs/lisp/files.el,v, Michael Cadilhac, 2007/08/31