Fix bug in Karatsuba multiplication, which affected propagation of a
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sun, 20 Feb 2011 15:06:39 +0000 (15:06 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sun, 20 Feb 2011 15:06:39 +0000 (15:06 +0000)
carry by more than one word. Now the current set of test cases all
pass again.

git-svn-id: svn://svn.tartarus.org/sgt/putty@9098 cda61777-01e9-0310-a592-d414129be87e

sshbn.c

diff --git a/sshbn.c b/sshbn.c
index 20244e8..cae1bd9 100644 (file)
--- a/sshbn.c
+++ b/sshbn.c
@@ -386,6 +386,7 @@ static void internal_mul(const BignumInt *a, const BignumInt *b,
             carry += c[j];
             c[j] = (BignumInt)carry;
             carry >>= BIGNUM_INT_BITS;
+            j--;
         }
 #ifdef KARA_DEBUG
         printf("ab = 0x");