From: Óscar Fuentes Date: Sun, 11 Aug 2019 23:42:16 +0000 (+0200) Subject: password-cache: differentiate null values from non-existent entries X-Git-Tag: emacs-27.0.90~1644 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f01365f62c921407acead13bb350816a313a8c42;p=emacs.git 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) --- 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))