1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 09:58:01 +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:
Simon Tatham 2013-08-05 19:50:51 +00:00
parent a7d13e284a
commit a7cc906df0

View File

@ -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);