mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +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. -- Cherry-picked from master commit: 7535f1d47a35e30f736f0e842844555f7a4a9841 GnuPG-bug-id: 4713 Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
2924ac374e
commit
66eb953f43
@ -1442,6 +1442,8 @@ get_best_pubkey_byname (ctrl_t ctrl, enum get_pubkey_modes mode,
|
||||
int is_mbox = is_valid_mailbox (name);
|
||||
int wkd_tried = 0;
|
||||
|
||||
log_assert (ret_keyblock != NULL);
|
||||
|
||||
if (retctx)
|
||||
*retctx = NULL;
|
||||
|
||||
@ -1504,7 +1506,10 @@ get_best_pubkey_byname (ctrl_t ctrl, enum get_pubkey_modes mode,
|
||||
struct pubkey_cmp_cookie new = { 0 };
|
||||
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);
|
||||
release_kbnode (new_keyblock);
|
||||
@ -1529,6 +1534,8 @@ get_best_pubkey_byname (ctrl_t ctrl, enum get_pubkey_modes mode,
|
||||
}
|
||||
new.uid = NULL;
|
||||
}
|
||||
while (getkey_next (ctrl, ctx, &new.key, &new_keyblock) == 0);
|
||||
|
||||
getkey_end (ctrl, ctx);
|
||||
ctx = NULL;
|
||||
free_user_id (best.uid);
|
||||
|
Loading…
x
Reference in New Issue
Block a user