diff options
-rw-r--r-- | lisp/ChangeLog | 5 | ||||
-rw-r--r-- | lisp/net/tramp-compat.el | 18 |
2 files changed, 14 insertions, 9 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 77482ef548a..123af6d9613 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2009-10-06 Sam Steingold <sds@gnu.org> + + * net/tramp-compat.el (tramp-compat-process-running-p): Check that + the comm attribute is present before calling regexp-quote. + 2009-10-06 Juanma Barranquero <lekktu@gmail.com> * play/animate.el (animate-string): For good effect, make sure diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el index 258bc2f4de0..57f23df94f3 100644 --- a/lisp/net/tramp-compat.el +++ b/lisp/net/tramp-compat.el @@ -312,15 +312,15 @@ element is not omitted." (dolist (pid (funcall (symbol-function 'list-system-processes)) result) (let ((attributes (funcall (symbol-function 'process-attributes) pid))) - (when - (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-match - (concat "^" (regexp-quote (cdr (assoc 'comm attributes)))) - process-name)) + (when (and (string-equal + (cdr (assoc 'user attributes)) (user-login-name)) + (let ((comm (cdr (assoc 'comm attributes)))) + ;; The returned command name could be truncated + ;; to 15 characters. Therefore, we cannot check + ;; for `string-equal'. + (and comm (string-match + (concat "^" (regexp-quote comm)) + process-name)))) (setq result t)))))) ;; Fallback, if there is no Lisp support yet. |