1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-02 22:38:02 +02:00

g10: Break out of the loop earlier.

* g10/getkey.c (have_secret_key_with_kid): Once we find the relevent
key or subkey, stop searching.

--
Signed-off-by: Neal H. Walfield <neal@g10code.com>.

Only a single key or subkey will ever be selected per keyblock.
This commit is contained in:
Neal H. Walfield 2015-09-15 15:21:17 +02:00
parent 50affffe93
commit 3940f10af7

View File

@ -2942,19 +2942,22 @@ have_secret_key_with_kid (u32 *keyid)
for (node = keyblock; node; node = node->next)
{
/* Bit 0 of the flags is set if the search found the key
using that key or subkey. */
using that key or subkey. Note: a search will only ever
match a single key or subkey. */
if ((node->flag & 1))
{
assert (node->pkt->pkttype == PKT_PUBLIC_KEY
|| node->pkt->pkttype == PKT_PUBLIC_SUBKEY);
if (!agent_probe_secret_key (NULL, node->pkt->pkt.public_key))
{
if (agent_probe_secret_key (NULL, node->pkt->pkt.public_key) == 0)
/* Not available. */
result = 1;
else
result = 0;
break;
}
}
}
release_kbnode (keyblock);
}