From f01365f62c921407acead13bb350816a313a8c42 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=93scar=20Fuentes?= Date: Mon, 12 Aug 2019 01:42:16 +0200 Subject: [PATCH] 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) --- lisp/password-cache.el | 7 +++++-- 1 file 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)) -- 2.39.2