mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 01:48:00 +00:00
The bignum code has two representations of zero, since
bn_restore_invariant (and the many loops that duplicate it) leaves a single zero word in a bignum representing 0, whereas the constant 'Zero' does not have any data words at all. Cope with this in bignum_cmp. (It would be a better plan to decide on one representation and stick with it, but this is the less disruptive fix for the moment.) [originally from svn r9996]
This commit is contained in:
parent
a7d13e284a
commit
a7cc906df0
6
sshbn.c
6
sshbn.c
@ -1322,6 +1322,12 @@ int bignum_cmp(Bignum a, Bignum b)
|
||||
int amax = a[0], bmax = b[0];
|
||||
int i;
|
||||
|
||||
/* Annoyingly we have two representations of zero */
|
||||
if (amax == 1 && a[amax] == 0)
|
||||
amax = 0;
|
||||
if (bmax == 1 && b[bmax] == 0)
|
||||
bmax = 0;
|
||||
|
||||
assert(amax == 0 || a[amax] != 0);
|
||||
assert(bmax == 0 || b[bmax] != 0);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user