From 328a6b6459a5ce4a70b374262f221ada20c40878 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 31 Jul 2015 12:02:08 +0200 Subject: [PATCH] gpg: Fix endless loop for expired keys given by fpr. * g10/getkey.c (lookup): Disable keydb caching when continuing a search. -- Caches are Fierce Creatures. Reported-by: Patrick Brunschwig --- g10/getkey.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/g10/getkey.c b/g10/getkey.c index 14b912a4b..f02e8c2b1 100644 --- a/g10/getkey.c +++ b/g10/getkey.c @@ -2621,6 +2621,11 @@ lookup (getkey_ctx_t ctx, kbnode_t *ret_keyblock, int want_secret) /* Release resources and continue search. */ release_kbnode (ctx->keyblock); ctx->keyblock = NULL; + /* We need to disable the caching so that for an exact key search we + won't get the result back from the cache and thus end up in an + endless loop. Disabling this here is sufficient because although + the result may have been cached, if won't be used then. */ + keydb_disable_caching (ctx->kr_handle); } found: