gpg: Fix endless loop for expired keys given by fpr.
authorWerner Koch <wk@gnupg.org>
Fri, 31 Jul 2015 10:02:08 +0000 (12:02 +0200)
committerWerner Koch <wk@gnupg.org>
Fri, 31 Jul 2015 10:02:08 +0000 (12:02 +0200)
* g10/getkey.c (lookup): Disable keydb caching when continuing a
search.
--

Caches are Fierce Creatures.

Reported-by: Patrick Brunschwig
g10/getkey.c

index 14b912a..f02e8c2 100644 (file)
@@ -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: