aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris <[email protected]>2007-12-11 05:50:37 +0000
committerGlenn Morris <[email protected]>2007-12-11 05:50:37 +0000
commit812498713a4bc715d7aaffb4f68382b73fb83ede (patch)
tree5c9d3699eee66094c120b55516daa220f1a187c1
parent57f44ca44a21b5030a29860918b26fad5297e55b (diff)
(url-make-private-file): New function.
-rw-r--r--lisp/url/ChangeLog7
-rw-r--r--lisp/url/url-util.el22
2 files changed, 29 insertions, 0 deletions
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index 7016382f71..aadd79ccc0 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,10 @@
+2007-12-11 Glenn Morris <[email protected]>
+
+ * url-util.el (url-make-private-file): New function.
+ * url-cookie.el (url-cookie-write-file):
+ * url-history.el (url-history-save-history):
+ Use url-make-private-file and with-temp-buffer.
+
2007-12-02 Glenn Morris <[email protected]>
* url-news.el (nntp-open-tls-stream, nntp-open-ssl-stream):
diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el
index d7d8e2b4a4..4f5b4b8cd1 100644
--- a/lisp/url/url-util.el
+++ b/lisp/url/url-util.el
@@ -523,6 +523,28 @@ Has a preference for looking backward when not directly on a symbol."
(set (make-local-variable 'url-current-mime-headers)
(mail-header-extract)))))
+(defun url-make-private-file (file)
+ "Make FILE only readable and writable by the current user.
+Creates FILE and its parent directories if they do not exist."
+ (let ((dir (file-name-directory file)))
+ (when dir
+ ;; For historical reasons.
+ (make-directory dir t)))
+ ;; Based on doc-view-make-safe-dir.
+ (condition-case nil
+ (let ((umask (default-file-modes)))
+ (unwind-protect
+ (progn
+ (set-default-file-modes #o0600)
+ (with-temp-buffer
+ (write-region (point-min) (point-max)
+ file nil 'silent nil 'excl)))
+ (set-default-file-modes umask)))
+ (file-already-exists
+ (if (file-symlink-p file)
+ (error "Danger: `%s' is a symbolic link" file))
+ (set-file-modes file #o0600))))
+
(provide 'url-util)
;; arch-tag: 24352abc-5a5a-412e-90cd-313b26bed5c9