all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#31075: 25.2; shell/eshell password prompt have not hide password input
@ 2018-04-06  1:18 Rugang Chen
  2018-06-26  2:22 ` Noam Postavsky
  0 siblings, 1 reply; 3+ messages in thread
From: Rugang Chen @ 2018-04-06  1:18 UTC (permalink / raw)
  To: 31075

[-- Attachment #1: Type: text/plain, Size: 1852 bytes --]

I found that command sudo has two pattern for english and chinese.
```
urugang@urugang-ubuntu:~$ LC_ALL=C sudo ls
[sudo] password for urugang:
urugang@urugang-ubuntu:~$ LC_ALL=zh_CN.utf8 sudo ls
[sudo] urugang 的密码:
```

So i think we should change comint-password-prompt-regexp from
```
(defcustom comint-password-prompt-regexp
  (concat
   "\\(^ *\\|"
   (regexp-opt
    '("Enter" "enter" "Enter same" "enter same" "Enter the" "enter the"
      "Old" "old" "New" "new" "'s" "login"
      "Kerberos" "CVS" "UNIX" " SMB" "LDAP" "[sudo]" "Repeat" "Bad") t)
   " +\\)"
   "\\(?:" (regexp-opt password-word-equivalents) "\\|Response\\)"
   "\\(?:\\(?:, try\\)? *again\\| (empty for no passphrase)\\| (again)\\)?\
\\(?: for [^::៖]+\\)?[::៖]\\s *\\'")
  "Regexp matching prompts for passwords in the inferior process.
This is used by `comint-watch-for-password-prompt'."
  :version "24.4"
  :type 'regexp
  :group 'comint)
```
to
```
(defcustom comint-password-prompt-regexp
  (concat
   "\\(^ *\\|"
   (regexp-opt
    '("Enter" "enter" "Enter same" "enter same" "Enter the" "enter the"
      "Old" "old" "New" "new" "'s" "login"
      "Kerberos" "CVS" "UNIX" " SMB" "LDAP" "[sudo]" "Repeat" "Bad") t)
   " +.*\\)"
   "\\(?:" (regexp-opt password-word-equivalents) "\\|Response\\)"
   "\\(?:\\(?:, try\\)? *again\\| (empty for no passphrase)\\| (again)\\)?\
\\(?: for [^::៖]+\\)?[::៖]\\s *\\'")
  "Regexp matching prompts for passwords in the inferior process.
This is used by `comint-watch-for-password-prompt'."
  :version "24.4"
  :type 'regexp
  :group 'comint)
```
In short, change `" +\\)"` to `" +.*\\)"`.

I have a question that why eshell dot not use same password prompt
patter in commit-mode.

```
(setq eshell-password-prompt-regexp comint-password-prompt-regexp)
```

[-- Attachment #2: Type: text/html, Size: 2656 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#31075: 25.2; shell/eshell password prompt have not hide password input
  2018-04-06  1:18 bug#31075: 25.2; shell/eshell password prompt have not hide password input Rugang Chen
@ 2018-06-26  2:22 ` Noam Postavsky
  2018-08-24 11:50   ` Noam Postavsky
  0 siblings, 1 reply; 3+ messages in thread
From: Noam Postavsky @ 2018-06-26  2:22 UTC (permalink / raw)
  To: Rugang Chen; +Cc: 31075

[-- Attachment #1: Type: text/plain, Size: 560 bytes --]

Rugang Chen <urugang@gmail.com> writes:

> In short, change `" +\\)"` to `" +.*\\)"`.

Right.  I'm a bit worried that this regexp is getting too many optional
parts, but I can't see a better way to handle this case.

> I have a question that why eshell dot not use same password prompt
> patter in commit-mode.

Historical accident, probably. 

> (setq eshell-password-prompt-regexp comint-password-prompt-regexp)

Maybe we should go the other way around though, the eshell regexp looks
much simpler (the patch below does not unify them in either direction).


[-- Attachment #2: patch --]
[-- Type: text/x-diff, Size: 2412 bytes --]

From 099168a7560265ca5ef940879bc4643ba396defd Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs@gmail.com>
Date: Mon, 25 Jun 2018 19:11:41 -0400
Subject: [PATCH v1] Detect Chinese sudo password prompts (Bug#31075)

* lisp/comint.el (comint-password-prompt-regexp): Allow text between
the prompt prefix and password equivalent.
* lisp/eshell/esh-mode.el (eshell-password-prompt-regexp): Accept some
unicode alternatives to ":".
* test/lisp/comint-tests.el (comint-testsuite-password-strings): Add
test case.
---
 lisp/comint.el            | 3 ++-
 lisp/eshell/esh-mode.el   | 2 +-
 test/lisp/comint-tests.el | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/lisp/comint.el b/lisp/comint.el
index 71a2b5eca5..03c1193f13 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -360,7 +360,8 @@ comint-password-prompt-regexp
       "Kerberos" "CVS" "UNIX" " SMB" "LDAP" "PEM" "SUDO"
       "[sudo]" "Repeat" "Bad" "Retype")
     t)
-   " +\\)"
+   ;; Allow for user name to precede password equivalent (Bug#31075).
+   " +.*\\)"
    "\\(?:" (regexp-opt password-word-equivalents) "\\|Response\\)"
    "\\(?:\\(?:, try\\)? *again\\| (empty for no passphrase)\\| (again)\\)?"
    ;; "[[:alpha:]]" used to be "for", which fails to match non-English.
diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el
index bbb74c3d86..80e22e52a2 100644
--- a/lisp/eshell/esh-mode.el
+++ b/lisp/eshell/esh-mode.el
@@ -182,7 +182,7 @@ eshell-preoutput-filter-functions
   :group 'eshell-mode)
 
 (defcustom eshell-password-prompt-regexp
-  (format "\\(%s\\).*:\\s *\\'" (regexp-opt password-word-equivalents))
+  (format "\\(%s\\)[^::៖]*[::៖]\\s *\\'" (regexp-opt password-word-equivalents))
   "Regexp matching prompts for passwords in the inferior process.
 This is used by `eshell-watch-for-password-prompt'."
   :type 'regexp
diff --git a/test/lisp/comint-tests.el b/test/lisp/comint-tests.el
index 64898888ba..e8c79b9ed7 100644
--- a/test/lisp/comint-tests.el
+++ b/test/lisp/comint-tests.el
@@ -36,6 +36,7 @@ comint-testsuite-password-strings
     "Enter same passphrase again: "     ; ssh-keygen
     "Passphrase for key root@GNU.ORG: " ; plink
     "[sudo] password for user:" ; Ubuntu sudo
+    "[sudo] user 的密码:" ; localized
     "Password (again):"
     "Enter password:"
     "Mot de Passe:" ; localized
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* bug#31075: 25.2; shell/eshell password prompt have not hide password input
  2018-06-26  2:22 ` Noam Postavsky
@ 2018-08-24 11:50   ` Noam Postavsky
  0 siblings, 0 replies; 3+ messages in thread
From: Noam Postavsky @ 2018-08-24 11:50 UTC (permalink / raw)
  To: Rugang Chen; +Cc: 31075

tags 31075 fixed
close 31075 27.1
quit

Noam Postavsky <npostavs@gmail.com> writes:

> Subject: [PATCH v1] Detect Chinese sudo password prompts (Bug#31075)

Pushed to master.

[1: 161139a42c]: 2018-08-23 22:50:15 -0400
  Detect Chinese sudo password prompts (Bug#31075)
  https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=161139a42c02cce051c51fb80c6ae00c9e6beaa6





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-08-24 11:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-06  1:18 bug#31075: 25.2; shell/eshell password prompt have not hide password input Rugang Chen
2018-06-26  2:22 ` Noam Postavsky
2018-08-24 11:50   ` Noam Postavsky

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.