X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/a47e8bba76c3b1826d62c000b707b285e70e1e78..eecca84d87d0b378a6a0af7f7651d0b9dc1514e9:/sshbn.c diff --git a/sshbn.c b/sshbn.c index 37422271..d0608a3a 100644 --- a/sshbn.c +++ b/sshbn.c @@ -729,6 +729,7 @@ Bignum bigmuladd(Bignum a, Bignum b, Bignum addend) } ret[0] = maxspot; + sfree(workspace); return ret; } @@ -814,7 +815,7 @@ unsigned short bignum_mod_short(Bignum number, unsigned short modulus) r = 0; mod = modulus; for (i = number[0]; i > 0; i--) - r = (r * 65536 + number[i]) % mod; + r = (r * (BIGNUM_TOP_BIT % mod) * 2 + number[i] % mod) % mod; return (unsigned short) r; } @@ -1009,5 +1010,6 @@ char *bignum_decimal(Bignum x) /* * Done. */ + sfree(workspace); return ret; }