diff options
author | NIIBE Yutaka <[email protected]> | 2016-05-11 10:27:03 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2016-05-11 10:27:03 +0000 |
commit | 83a90a916e8e2f8e44c3b11d11e1dd75f65a87fb (patch) | |
tree | 15edca808c46e699aa176038be4bb8e2e9a5a8d1 /g10/sig-check.c | |
parent | gpg: Allow unattended deletion of secret keys. (diff) | |
download | gnupg-83a90a916e8e2f8e44c3b11d11e1dd75f65a87fb.tar.gz gnupg-83a90a916e8e2f8e44c3b11d11e1dd75f65a87fb.zip |
g10: Fix signature checking.
* g10/sig-check.c (check_signature_over_key_or_uid): Fix call to
walk_kbnode.
--
Thanks to Vincent Brillault (Feandil).
GnuPG-bug-id: 2351
Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'g10/sig-check.c')
-rw-r--r-- | g10/sig-check.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/g10/sig-check.c b/g10/sig-check.c index 290f19a79..7000b480c 100644 --- a/g10/sig-check.c +++ b/g10/sig-check.c @@ -797,15 +797,20 @@ check_signature_over_key_or_uid (PKT_public_key *signer, *is_selfsig = 1; } else - /* See if one of the subkeys was the signer (although this is - extremely unlikely). */ { kbnode_t ctx = NULL; kbnode_t n; - while ((n = walk_kbnode (kb, &ctx, PKT_PUBLIC_SUBKEY))) + /* See if one of the subkeys was the signer (although this + is extremely unlikely). */ + while ((n = walk_kbnode (kb, &ctx, 0))) { - PKT_public_key *subk = n->pkt->pkt.public_key; + PKT_public_key *subk; + + if (n->pkt->pkttype != PKT_PUBLIC_SUBKEY) + continue; + + subk = n->pkt->pkt.public_key; if (sig->keyid[0] == subk->keyid[0] && sig->keyid[1] == subk->keyid[1]) /* Issued by a subkey. */ |