]> git.eshelyaron.com Git - emacs.git/commitdiff
Strip carriage returns from received password prompts (comint)
authorRobert Pluim <rpluim@gmail.com>
Tue, 1 Sep 2020 14:59:50 +0000 (16:59 +0200)
committerRobert Pluim <rpluim@gmail.com>
Tue, 1 Sep 2020 15:01:48 +0000 (17:01 +0200)
* comint.el (comint-password-prompt-regexp): Strip carriage
returns from the received prompt before matching.  (Bug#43003)

lisp/comint.el

index be0e32b9e09de4d939cc655d60c50b603557ef77..b4ea232767c08c6fdff1a23c958de6591e180699 100644 (file)
@@ -2423,11 +2423,13 @@ Security bug: your string can still be temporarily recovered with
 (defun comint-watch-for-password-prompt (string)
   "Prompt in the minibuffer for password and send without echoing.
 Looks for a match to `comint-password-prompt-regexp' in order
-to detect the need to (prompt and) send a password.
+to detect the need to (prompt and) send a password.  Ignores any
+carriage returns (\\r) in STRING.
 
 This function could be in the list `comint-output-filter-functions'."
   (when (let ((case-fold-search t))
-         (string-match comint-password-prompt-regexp string))
+         (string-match comint-password-prompt-regexp
+                        (replace-regexp-in-string "\r" "" string)))
     (when (string-match "^[ \n\r\t\v\f\b\a]+" string)
       (setq string (replace-match "" t t string)))
     (let ((comint--prompt-recursion-depth (1+ comint--prompt-recursion-depth)))