[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/emacs-24 r108108: * subr.el (read-passwd):
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/emacs-24 r108108: * subr.el (read-passwd): Better clean after ourselves. |
Date: |
Fri, 02 Nov 2012 02:33:49 -0000 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 108108
fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11392
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Wed 2012-05-02 17:34:57 -0400
message:
* subr.el (read-passwd): Better clean after ourselves.
modified:
lisp/ChangeLog
lisp/subr.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2012-05-02 13:00:29 +0000
+++ b/lisp/ChangeLog 2012-05-02 21:34:57 +0000
@@ -1,3 +1,7 @@
+2012-05-02 Stefan Monnier <address@hidden>
+
+ * subr.el (read-passwd): Better clean after ourselves (bug#11392).
+
2012-05-02 Juanma Barranquero <address@hidden>
* notifications.el (dbus-debug):
=== modified file 'lisp/subr.el'
--- a/lisp/subr.el 2012-04-27 03:10:38 +0000
+++ b/lisp/subr.el 2012-05-02 21:34:57 +0000
@@ -2115,21 +2115,21 @@
(message "Password not repeated accurately; please start over")
(sit-for 1))))
success)
- (let (minibuf)
+ (let ((hide-chars-fun
+ (lambda (beg end _len)
+ (clear-this-command-keys)
+ (setq beg (min end (max (minibuffer-prompt-end)
+ beg)))
+ (dotimes (i (- end beg))
+ (put-text-property (+ i beg) (+ 1 i beg)
+ 'display (string ?.)))))
+ minibuf)
(minibuffer-with-setup-hook
(lambda ()
(setq minibuf (current-buffer))
;; Turn off electricity.
(set (make-local-variable 'post-self-insert-hook) nil)
- (add-hook 'after-change-functions
- (lambda (beg end _len)
- (clear-this-command-keys)
- (setq beg (min end (max (minibuffer-prompt-end)
- beg)))
- (dotimes (i (- end beg))
- (put-text-property (+ i beg) (+ 1 i beg)
- 'display (string ?.))))
- nil t))
+ (add-hook 'after-change-functions hide-chars-fun nil 'local))
(unwind-protect
(read-string prompt nil
(let ((sym (make-symbol "forget-history")))
@@ -2137,7 +2137,14 @@
sym)
default)
(when (buffer-live-p minibuf)
- (with-current-buffer minibuf (erase-buffer))))))))
+ (with-current-buffer minibuf
+ ;; Not sure why but it seems that there might be cases where the
+ ;; minibuffer is not always properly reset later on, so undo
+ ;; whatever we've done here (bug#11392).
+ (remove-hook 'after-change-functions hide-chars-fun 'local)
+ (kill-local-variable 'post-self-insert-hook)
+ ;; And of course, don't keep the sensitive data around.
+ (erase-buffer))))))))
;; This should be used by `call-interactively' for `n' specs.
(defun read-number (prompt &optional default)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/emacs-24 r108108: * subr.el (read-passwd): Better clean after ourselves.,
Stefan Monnier <=