diff options
Diffstat (limited to '')
-rw-r--r-- | g10/mainproc.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/g10/mainproc.c b/g10/mainproc.c index dd9909bcf..cc865a833 100644 --- a/g10/mainproc.c +++ b/g10/mainproc.c @@ -1163,6 +1163,13 @@ proc_signature_packets( void *anchor, IOBUF a, log_error (_("no signature found\n")); rc = G10ERR_NO_DATA; } + + /* Propagate the signature seen flag upward. Do this only on + success so that we won't issue the nodata status several + times. */ + if (!rc && c->anchor && c->any_sig_seen) + c->anchor->any_sig_seen = 1; + xfree( c ); return rc; } @@ -1445,8 +1452,8 @@ check_sig_and_print( CTX c, KBNODE node ) KBNODE n; int n_onepass, n_sig; - log_debug ("checking signature packet composition\n"); - dump_kbnode (c->list); +/* log_debug ("checking signature packet composition\n"); */ +/* dump_kbnode (c->list); */ n = c->list; assert (n); @@ -1482,7 +1489,9 @@ check_sig_and_print( CTX c, KBNODE node ) for (n_sig=0, n = n->next; n && n->pkt->pkttype == PKT_SIGNATURE; n = n->next) n_sig++; - if (n || !n_sig) + if (!n_sig) + goto ambiguous; + if (n && !opt.allow_multisig_verification) goto ambiguous; if (n_onepass != n_sig) { |