]> git.eshelyaron.com Git - emacs.git/commitdiff
Make Tramp more robust
authorMichael Albinus <michael.albinus@gmx.de>
Mon, 8 Jan 2024 13:52:25 +0000 (14:52 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Mon, 8 Jan 2024 13:52:25 +0000 (14:52 +0100)
* lisp/net/tramp-sh.el (tramp-bundle-read-file-names): Check, that
the command finishes successfully.

lisp/net/tramp-sh.el

index 6489f473634d06aa3fa70a89215eefa19670ca61..8ec9467ab45fdd96c69b5c2bbfc33b7c86d887bb 100644 (file)
@@ -3652,20 +3652,20 @@ filled are described in `tramp-bundle-read-file-names'."
 
     (dolist
        (elt
-        (ignore-errors
+        (with-current-buffer (tramp-get-connection-buffer vec)
           ;; We cannot use `tramp-send-command-and-read', because
           ;; this does not cooperate well with heredoc documents.
-          (tramp-send-command
-           vec
-           (format
-            "tramp_bundle_read_file_names <<'%s'\n%s\n%s\n"
-            tramp-end-of-heredoc
-            (mapconcat #'tramp-shell-quote-argument files "\n")
-            tramp-end-of-heredoc))
-          (with-current-buffer (tramp-get-connection-buffer vec)
-            ;; Read the expression.
-            (goto-char (point-min))
-            (read (current-buffer)))))
+          (unless (tramp-send-command-and-check
+                   vec
+                   (format
+                    "tramp_bundle_read_file_names <<'%s'\n%s\n%s\n"
+                    tramp-end-of-heredoc
+                    (mapconcat #'tramp-shell-quote-argument files "\n")
+                    tramp-end-of-heredoc))
+            (tramp-error vec 'file-error "%s" (tramp-get-buffer-string)))
+          ;; Read the expression.
+          (goto-char (point-min))
+          (read (current-buffer))))
 
       (tramp-set-file-property vec (car elt) "file-exists-p" (nth 1 elt))
       (tramp-set-file-property vec (car elt) "file-readable-p" (nth 2 elt))