[Pkg-gnupg-commit] [gnupg2] 254/292: g10: Fix iteration over getkey results.
Daniel Kahn Gillmor
dkg at fifthhorseman.net
Mon Nov 21 06:31:49 UTC 2016
This is an automated email from the git hooks/post-receive script.
dkg pushed a commit to branch master
in repository gnupg2.
commit 1d03cc77e1706f7da653153ad4b58c61e4fd2573
Author: Justus Winter <justus at g10code.com>
Date: Tue Nov 15 15:08:54 2016 +0100
g10: Fix iteration over getkey results.
* g10/getkey.c (getkey_next): Fix invocation of 'lookup'. If we want
to use RET_FOUND_KEY, RET_KEYBLOCK must be valid.
Fixes-commit: 8ea72a776a88f3c851e812d258355be80caa1bc1
Signed-off-by: Justus Winter <justus at g10code.com>
---
g10/getkey.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/g10/getkey.c b/g10/getkey.c
index bf197b2..6232363 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -2167,6 +2167,7 @@ gpg_error_t
getkey_next (getkey_ctx_t ctx, PKT_public_key *pk, kbnode_t *ret_keyblock)
{
int rc; /* Fixme: Make sure this is proper gpg_error */
+ KBNODE keyblock = NULL;
KBNODE found_key = NULL;
/* We need to disable the caching so that for an exact key search we
@@ -2175,11 +2176,18 @@ getkey_next (getkey_ctx_t ctx, PKT_public_key *pk, kbnode_t *ret_keyblock)
used without respecting the current file pointer! */
keydb_disable_caching (ctx->kr_handle);
+ /* FOUND_KEY is only valid as long as RET_KEYBLOCK is. If the
+ * caller wants PK, but not RET_KEYBLOCK, we need hand in our own
+ * keyblock. */
+ if (pk && ret_keyblock == NULL)
+ ret_keyblock = &keyblock;
+
rc = lookup (ctx, ret_keyblock, &found_key, ctx->want_secret);
if (!rc && pk)
{
log_assert (found_key);
pk_from_block (pk, NULL, found_key);
+ release_kbnode (keyblock);
}
return rc;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git
More information about the Pkg-gnupg-commit
mailing list