From ff997ad7863c7c54a12d0cd07fa4c01766dfcce4 Mon Sep 17 00:00:00 2001
From: Michael Albinus <michael.albinus@gmx.de>
Date: Fri, 8 Apr 2022 13:12:03 +0200
Subject: [PATCH] Ensure local `default-directory' in Tramp when needed

* lisp/net/tramp.el (tramp-process-running-p): Ensure local
`default-directory' when calling `list-system-processes' and
`process-attributes'.
---
 lisp/net/tramp.el | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index a24d83f876a..8baf72464dc 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -5666,14 +5666,15 @@ verbosity of 6."
   "Return t if system process PROCESS-NAME is running for `user-login-name'."
   (when (stringp process-name)
     (catch 'result
-      (dolist (pid (list-system-processes))
-	(when-let ((attributes (process-attributes pid))
-		   (comm (cdr (assoc 'comm attributes))))
-	  (and (string-equal (cdr (assoc 'user attributes)) (user-login-name))
-               ;; The returned command name could be truncated to 15
-               ;; characters.  Therefore, we cannot check for `string-equal'.
-	       (string-prefix-p comm process-name)
-	       (throw 'result t)))))))
+      (let ((default-directory temporary-file-directory))
+	(dolist (pid (list-system-processes))
+	  (when-let ((attributes (process-attributes pid))
+		     (comm (cdr (assoc 'comm attributes))))
+	    (and (string-equal (cdr (assoc 'user attributes)) (user-login-name))
+		 ;; The returned command name could be truncated to 15
+		 ;; characters.  Therefore, we cannot check for `string-equal'.
+		 (string-prefix-p comm process-name)
+		 (throw 'result t))))))))
 
 ;; When calling "emacs -Q", `auth-source-search' won't be called.  If
 ;; you want to debug exactly this case, call "emacs -Q --eval '(setq
-- 
2.39.5