]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - sshbn.c
What was that rogue man-mindepth directive doing in here?
[PuTTY.git] / sshbn.c
diff --git a/sshbn.c b/sshbn.c
index 2d8359e30b84ebe6d880e08a5938d309c5ce9a60..7fe0309a03bf285a019d6f241442f26f4277e232 100644 (file)
--- 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;
 }