Fix returning new signatures when there are none.
authorBen Kibbey <bjk@luxsci.net>
Sun, 9 Nov 2014 21:42:54 +0000 (16:42 -0500)
committerWerner Koch <wk@gnupg.org>
Fri, 21 Nov 2014 19:25:43 +0000 (20:25 +0100)
commit5942b0c7e0593b82b4c4a142c214d7a2649de104
tree9dd199a77b86d271d3a155bc6d2545b3f9e1a185
parenta9ae0d142864a91d732a8f215e4ccdc791309335
Fix returning new signatures when there are none.

* src/sign.c (gpgme_op_sign_result): Test that invalid and valid
signatures add up to gpgme_signers_count().
--

When invalid and valid signatures do not equal gpgme_signers_count() it
means that there was a bad passphrase during signing after the first
signer. This leaves the result.signatures from previous signers intact
which isn't correct since gpg will report:

gpg: number of one-pass packets does not match number of signature
packets
gpg: can't handle this ambiguous signature data

during verify. So when this happens append the valid signatures to the
.invalid_signers list with .reason set to GPG_ERR_GENERAL.
src/sign.c