1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 06:20:55 -08:00

Fix file name quoting in tramp-smb.el (do not merge)

* lisp/net/tramp-smb.el (tramp-smb-handle-write-region): Quote tmpfile.
(tramp-smb-get-localname): Remove superfluous test.  (Bug#55855)

* test/lisp/net/tramp-tests.el (tramp-test03-file-name-method-rules):
Remove superfluous checks.
This commit is contained in:
Michael Albinus 2022-06-09 14:44:00 +02:00
parent d02c94090c
commit 3fd0854378
2 changed files with 4 additions and 15 deletions

View file

@ -1631,7 +1631,7 @@ errors for shares like \"C$/\", which are common in Microsoft Windows."
v 3 (format "Moving tmp file %s to %s" tmpfile filename) v 3 (format "Moving tmp file %s to %s" tmpfile filename)
(unwind-protect (unwind-protect
(unless (tramp-smb-send-command (unless (tramp-smb-send-command
v (format "put %s \"%s\"" v (format "put \"%s\" \"%s\""
tmpfile (tramp-smb-get-localname v))) tmpfile (tramp-smb-get-localname v)))
(tramp-error v 'file-error "Cannot write `%s'" filename)) (tramp-error v 'file-error "Cannot write `%s'" filename))
(delete-file tmpfile))) (delete-file tmpfile)))
@ -1695,9 +1695,8 @@ If VEC has no cifs capabilities, exchange \"/\" by \"\\\\\"."
(when (string-match "\\(\\$\\$\\)\\(/\\|$\\)" localname) (when (string-match "\\(\\$\\$\\)\\(/\\|$\\)" localname)
(setq localname (replace-match "$" nil nil localname 1))) (setq localname (replace-match "$" nil nil localname 1)))
;; A period followed by a space, or trailing periods and spaces, ;; A trailing space is not supported.
;; are not supported. (when (string-match-p " $" localname)
(when (string-match-p "\\. \\|\\.$\\| $" localname)
(tramp-error (tramp-error
vec 'file-error vec 'file-error
"Invalid file name %s" (tramp-make-tramp-file-name vec localname))) "Invalid file name %s" (tramp-make-tramp-file-name vec localname)))

View file

@ -2028,17 +2028,7 @@ Also see `ignore'."
:type 'user-error) :type 'user-error)
(should-error (should-error
(expand-file-name "/method:user1@host1|ssh:user2@host2:/path/to/file") (expand-file-name "/method:user1@host1|ssh:user2@host2:/path/to/file")
:type 'user-error)) :type 'user-error)))
;; Samba does not support file names with periods followed by
;; spaces, and trailing periods or spaces.
(when (tramp--test-smb-p)
(dolist (file '("foo." "foo. bar" "foo "))
(should-error
(tramp-smb-get-localname
(tramp-dissect-file-name
(expand-file-name file tramp-test-temporary-file-directory)))
:type 'file-error))))
(ert-deftest tramp-test04-substitute-in-file-name () (ert-deftest tramp-test04-substitute-in-file-name ()
"Check `substitute-in-file-name'." "Check `substitute-in-file-name'."