aboutsummaryrefslogtreecommitdiffstats
path: root/g10/sig-check.c
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2016-05-11 10:27:03 +0000
committerNIIBE Yutaka <[email protected]>2016-05-11 10:27:03 +0000
commit83a90a916e8e2f8e44c3b11d11e1dd75f65a87fb (patch)
tree15edca808c46e699aa176038be4bb8e2e9a5a8d1 /g10/sig-check.c
parentgpg: Allow unattended deletion of secret keys. (diff)
downloadgnupg-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.c13
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. */