mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-23 15:07:03 +01:00
gpg: The first key should be in candidates.
* g10/getkey.c (get_best_pubkey_byname): Handle the first key as the initial candidate for the selection. -- GnuPG-bug-id: 4713 Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
2b922465cb
commit
7535f1d47a
@ -1354,6 +1354,8 @@ get_best_pubkey_byname (ctrl_t ctrl, enum get_pubkey_modes mode,
|
|||||||
int is_mbox = is_valid_mailbox (name);
|
int is_mbox = is_valid_mailbox (name);
|
||||||
int wkd_tried = 0;
|
int wkd_tried = 0;
|
||||||
|
|
||||||
|
log_assert (ret_keyblock != NULL);
|
||||||
|
|
||||||
if (retctx)
|
if (retctx)
|
||||||
*retctx = NULL;
|
*retctx = NULL;
|
||||||
|
|
||||||
@ -1416,7 +1418,10 @@ get_best_pubkey_byname (ctrl_t ctrl, enum get_pubkey_modes mode,
|
|||||||
struct pubkey_cmp_cookie new = { 0 };
|
struct pubkey_cmp_cookie new = { 0 };
|
||||||
kbnode_t new_keyblock;
|
kbnode_t new_keyblock;
|
||||||
|
|
||||||
while (getkey_next (ctrl, ctx, &new.key, &new_keyblock) == 0)
|
copy_public_key (&new.key, (*ret_keyblock)->pkt->pkt.public_key);
|
||||||
|
new_keyblock = clone_kbnode (*ret_keyblock);
|
||||||
|
|
||||||
|
do
|
||||||
{
|
{
|
||||||
int diff = pubkey_cmp (ctrl, name, &best, &new, new_keyblock);
|
int diff = pubkey_cmp (ctrl, name, &best, &new, new_keyblock);
|
||||||
release_kbnode (new_keyblock);
|
release_kbnode (new_keyblock);
|
||||||
@ -1441,6 +1446,8 @@ get_best_pubkey_byname (ctrl_t ctrl, enum get_pubkey_modes mode,
|
|||||||
}
|
}
|
||||||
new.uid = NULL;
|
new.uid = NULL;
|
||||||
}
|
}
|
||||||
|
while (getkey_next (ctrl, ctx, &new.key, &new_keyblock) == 0);
|
||||||
|
|
||||||
getkey_end (ctrl, ctx);
|
getkey_end (ctrl, ctx);
|
||||||
ctx = NULL;
|
ctx = NULL;
|
||||||
free_user_id (best.uid);
|
free_user_id (best.uid);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user