X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/736cc6d131e571cd9a0d3f2b5b5dc9ab493d207a..9bb8630af3373e7bbf594bfeda731585684e1b69:/sshbn.c diff --git a/sshbn.c b/sshbn.c index 2d8359e3..7fe0309a 100644 --- a/sshbn.c +++ b/sshbn.c @@ -133,7 +133,7 @@ static void internal_add_shifted(BignumInt *number, int bshift = shift % BIGNUM_INT_BITS; BignumDblInt addend; - addend = n << bshift; + addend = (BignumDblInt)n << bshift; while (addend) { addend += number[word]; @@ -729,6 +729,7 @@ Bignum bigmuladd(Bignum a, Bignum b, Bignum addend) } ret[0] = maxspot; + sfree(workspace); return ret; } @@ -908,6 +909,7 @@ Bignum modinv(Bignum number, Bignum modulus) x = bigmuladd(q, xp, t); sign = -sign; freebn(t); + freebn(q); } freebn(b); @@ -1009,5 +1011,6 @@ char *bignum_decimal(Bignum x) /* * Done. */ + sfree(workspace); return ret; }