mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-23 15:07:03 +01:00
gpg: Fix NULL de-ref for ambiguous key check in --export-ssh-keys.
* g10/getkey.c: Allow arg RET_KEYBLOCK to be NULL. -- This change adds the expected behavior for the getkey_next function to fix this NULL de-ref. GnuPG-bug-id: 2212 Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
eb9c021631
commit
b280aa6423
@ -3059,6 +3059,9 @@ lookup (getkey_ctx_t ctx, kbnode_t *ret_keyblock, kbnode_t *ret_found_key,
|
|||||||
KBNODE keyblock = NULL;
|
KBNODE keyblock = NULL;
|
||||||
KBNODE found_key = NULL;
|
KBNODE found_key = NULL;
|
||||||
|
|
||||||
|
if (ret_keyblock)
|
||||||
|
*ret_keyblock = NULL;
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
rc = keydb_search (ctx->kr_handle, ctx->items, ctx->nitems, NULL);
|
rc = keydb_search (ctx->kr_handle, ctx->items, ctx->nitems, NULL);
|
||||||
@ -3113,6 +3116,7 @@ found:
|
|||||||
|
|
||||||
if (!rc)
|
if (!rc)
|
||||||
{
|
{
|
||||||
|
if (ret_keyblock)
|
||||||
*ret_keyblock = keyblock; /* Return the keyblock. */
|
*ret_keyblock = keyblock; /* Return the keyblock. */
|
||||||
keyblock = NULL;
|
keyblock = NULL;
|
||||||
}
|
}
|
||||||
|
@ -750,6 +750,11 @@ gpg_error_t getkey_byname (ctrl_t ctrl,
|
|||||||
can use free_public_key, which calls release_public_key_parts(PK)
|
can use free_public_key, which calls release_public_key_parts(PK)
|
||||||
and then xfree(PK)).
|
and then xfree(PK)).
|
||||||
|
|
||||||
|
RET_KEYBLOCK can be given as NULL; if it is not NULL it the entire
|
||||||
|
found keyblock wis retruned hich must be released with
|
||||||
|
release_kbnode. If the function returns an error NULL is stored at
|
||||||
|
RET_KEYBLOCK.
|
||||||
|
|
||||||
The self-signed data has already been merged into the public key
|
The self-signed data has already been merged into the public key
|
||||||
using merge_selfsigs. */
|
using merge_selfsigs. */
|
||||||
gpg_error_t getkey_next (getkey_ctx_t ctx, PKT_public_key *pk,
|
gpg_error_t getkey_next (getkey_ctx_t ctx, PKT_public_key *pk,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user