]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix file name quoting in tramp-smb.el (do not merge)
authorMichael Albinus <michael.albinus@gmx.de>
Thu, 9 Jun 2022 12:44:00 +0000 (14:44 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Thu, 9 Jun 2022 12:44:00 +0000 (14:44 +0200)
* 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.

lisp/net/tramp-smb.el
test/lisp/net/tramp-tests.el

index 2aaa6e8ab3f47f006ecccf3254814f3d305396ff..dfcb7162c800fb0158c6a801b7eaeab0a2ccbf70 100644 (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)
        (unwind-protect
            (unless (tramp-smb-send-command
-                    v (format "put %s \"%s\""
+                    v (format "put \"%s\" \"%s\""
                               tmpfile (tramp-smb-get-localname v)))
              (tramp-error v 'file-error "Cannot write `%s'" filename))
          (delete-file tmpfile)))
@@ -1695,9 +1695,8 @@ If VEC has no cifs capabilities, exchange \"/\" by \"\\\\\"."
       (when (string-match "\\(\\$\\$\\)\\(/\\|$\\)" localname)
        (setq localname (replace-match "$" nil nil localname 1)))
 
-      ;; A period followed by a space, or trailing periods and spaces,
-      ;; are not supported.
-      (when (string-match-p "\\. \\|\\.$\\| $" localname)
+      ;; A trailing space is not supported.
+      (when (string-match-p " $" localname)
        (tramp-error
         vec 'file-error
         "Invalid file name %s" (tramp-make-tramp-file-name vec localname)))
index 61fa6a5ae4ee33a5bc126857915e779a4fccb22e..9071beedf2e46dbf5e0e2b8ee99cbb54b4bceaf9 100644 (file)
@@ -2028,17 +2028,7 @@ Also see `ignore'."
      :type 'user-error)
     (should-error
      (expand-file-name "/method:user1@host1|ssh:user2@host2:/path/to/file")
-     :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))))
+     :type 'user-error)))
 
 (ert-deftest tramp-test04-substitute-in-file-name ()
   "Check `substitute-in-file-name'."