summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2021-06-25 14:18:28 +0200
committerMichael Albinus <michael.albinus@gmx.de>2021-06-25 14:18:28 +0200
commit2fbe17c49ab8c413f5036e60ee31a56c3ed435da (patch)
tree006f22a08727053911ad91e777f8bb55d86ba7e3
parent8b49e99504f7ba30abc90a31b02e2e230e818b75 (diff)
downloademacs-2fbe17c49ab8c413f5036e60ee31a56c3ed435da.tar.gz
emacs-2fbe17c49ab8c413f5036e60ee31a56c3ed435da.tar.bz2
emacs-2fbe17c49ab8c413f5036e60ee31a56c3ed435da.zip
Fix Tramp bug#49178
* lisp/net/tramp.el (tramp-handle-find-backup-file-name) (tramp-handle-make-auto-save-file-name): Adapt checks. (Bug#49178)
-rw-r--r--lisp/net/tramp.el17
1 files changed, 9 insertions, 8 deletions
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 5284981961a..0f15e4a20b5 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -3648,17 +3648,17 @@ User is always nil."
(cdr x))))
tramp-backup-directory-alist)
backup-directory-alist))
- (uid (tramp-compat-file-attribute-user-id
- (file-attributes filename 'integer)))
result)
(prog1 ;; Run plain `find-backup-file-name'.
(setq result
(tramp-run-real-handler
#'find-backup-file-name (list filename)))
;; Protect against security hole.
- (when (and (natnump uid) (zerop uid)
+ (when (and (not tramp-allow-unsafe-temporary-files)
(file-in-directory-p (car result) temporary-file-directory)
- (not tramp-allow-unsafe-temporary-files)
+ (zerop (or (tramp-compat-file-attribute-user-id
+ (file-attributes filename 'integer))
+ tramp-unknown-id-integer))
(not (with-tramp-connection-property
(tramp-get-process v) "unsafe-temporary-file"
(yes-or-no-p
@@ -5264,8 +5264,7 @@ this file, if that variable is non-nil."
(auto-save-file-name-transforms
(if (null tramp-auto-save-directory)
auto-save-file-name-transforms))
- (uid (tramp-compat-file-attribute-user-id
- (file-attributes buffer-file-name 'integer)))
+ (filename buffer-file-name)
(buffer-file-name
(if (null tramp-auto-save-directory)
buffer-file-name
@@ -5283,9 +5282,11 @@ this file, if that variable is non-nil."
(prog1 ;; Run plain `make-auto-save-file-name'.
(setq result (tramp-run-real-handler #'make-auto-save-file-name nil))
;; Protect against security hole.
- (when (and (natnump uid) (zerop uid)
+ (when (and (not tramp-allow-unsafe-temporary-files)
(file-in-directory-p result temporary-file-directory)
- (not tramp-allow-unsafe-temporary-files)
+ (zerop (or (tramp-compat-file-attribute-user-id
+ (file-attributes filename 'integer))
+ tramp-unknown-id-integer))
(not (with-tramp-connection-property
(tramp-get-process v) "unsafe-temporary-file"
(yes-or-no-p