diff options
author | Werner Koch <[email protected]> | 2016-05-09 19:07:40 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2016-05-09 19:16:23 +0000 |
commit | 693838f0125d5d0c963fa3771b1bd117702af697 (patch) | |
tree | a49633d0a5a8261804fe49aa05dcf6c393fb5287 | |
parent | gpg: Request a "save" after cmd "check" fixed something. (diff) | |
download | gnupg-693838f0125d5d0c963fa3771b1bd117702af697.tar.gz gnupg-693838f0125d5d0c963fa3771b1bd117702af697.zip |
gpg: Fix buglet in the check_all_keysigs function.
* g10/keyedit.c (sig_comparison): Actually compare the pubkey
algorithms.
--
This fixes two bugs: The first was a typo which led to us comparing A
with A. The second problem was the use of an assert at a place where
this can't be asserted: Two signature may have different algorithms;
they won't verify but after all it is about corrupted signatures.
Reported-by: Guilhem Moulin <[email protected]>
GnuPG-bug-id: 2236
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to '')
-rw-r--r-- | g10/keyedit.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/g10/keyedit.c b/g10/keyedit.c index 7ddf342b1..200a1ab27 100644 --- a/g10/keyedit.c +++ b/g10/keyedit.c @@ -350,8 +350,9 @@ sig_comparison (const void *av, const void *bv) return 1; ndataa = pubkey_get_nsig (a->pubkey_algo); - ndatab = pubkey_get_nsig (a->pubkey_algo); - log_assert (ndataa == ndatab); + ndatab = pubkey_get_nsig (b->pubkey_algo); + if (ndataa != ndatab) + return (ndataa < ndatab)? -1 : 1; for (i = 0; i < ndataa; i ++) { |