diff options
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 |
commit | f01365f62c921407acead13bb350816a313a8c42 (patch) | |
tree | 1697daf49c47691f976b92ac8faa7d833ea7c613 /lisp/password-cache.el | |
parent | 94644d862c9a54a5ebe8265fbba04bdd0c973065 (diff) | |
download | emacs-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.el | 7 |
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)) |