aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-05-09 19:07:40 +0000
committerWerner Koch <[email protected]>2016-05-09 19:16:23 +0000
commit693838f0125d5d0c963fa3771b1bd117702af697 (patch)
treea49633d0a5a8261804fe49aa05dcf6c393fb5287
parentgpg: Request a "save" after cmd "check" fixed something. (diff)
downloadgnupg-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.c5
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 ++)
{