summaryrefslogtreecommitdiff
path: root/lisp/password-cache.el
diff options
context:
space:
mode:
authorÓscar Fuentes <ofv@wanadoo.es>2019-08-12 01:42:16 +0200
committerÓscar Fuentes <ofv@wanadoo.es>2019-08-12 01:43:19 +0200
commitf01365f62c921407acead13bb350816a313a8c42 (patch)
tree1697daf49c47691f976b92ac8faa7d833ea7c613 /lisp/password-cache.el
parent94644d862c9a54a5ebe8265fbba04bdd0c973065 (diff)
downloademacs-f01365f62c921407acead13bb350816a313a8c42.tar.gz
password-cache: differentiate null values from non-existent entries
* password-cache.el (password-in-cache-p, password-cache-add): properly detect non-existent entry. (Bug#36834)
Diffstat (limited to 'lisp/password-cache.el')
-rw-r--r--lisp/password-cache.el7
1 files changed, 5 insertions, 2 deletions
diff --git a/lisp/password-cache.el b/lisp/password-cache.el
index 5a09ae4859d..6009fb491e8 100644
--- a/lisp/password-cache.el
+++ b/lisp/password-cache.el
@@ -81,7 +81,8 @@ regulate cache behavior."
"Check if KEY is in the cache."
(and password-cache
key
- (gethash key password-data)))
+ (not (eq (gethash key password-data 'password-cache-no-data)
+ 'password-cache-no-data))))
(defun password-read (prompt &optional key)
"Read password, for use with KEY, from user, or from cache if wanted.
@@ -125,7 +126,9 @@ user again."
(defun password-cache-add (key password)
"Add password to cache.
The password is removed by a timer after `password-cache-expiry' seconds."
- (when (and password-cache-expiry (null (gethash key password-data)))
+ (when (and password-cache-expiry
+ (eq (gethash key password-data 'password-cache-no-data)
+ 'password-cache-no-data))
(run-at-time password-cache-expiry nil
#'password-cache-remove
key))