mpi: Fix mpi_set_secure.
authorNIIBE Yutaka <gniibe@fsij.org>
Tue, 4 Jul 2017 00:33:46 +0000 (09:33 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Tue, 4 Jul 2017 00:33:46 +0000 (09:33 +0900)
* mpi/mpiutil.c (mpi_set_secure): Allocate by ->alloced.

--

The code was simply wrong.  The question is if (1) it allocates
(possibly) more or (2) modifi ->alloced.  The choice is (1).

Because we have routines of mpi_set_cond and mpi_swap_cond which
assume no change for the allocated length of limbs, no surprise is
better.  See _gcry_mpi_ec_mul_point for concrete example for those
routines.  That's for constant-time computation.

Debian-bug-id: 866964
Suggested-by: Mark Wooding <mdw@distorted.org.uk>
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
mpi/mpiutil.c

index 6dee0b9..3ae84c3 100644 (file)
@@ -256,7 +256,7 @@ mpi_set_secure( gcry_mpi_t a )
       gcry_assert (!ap);
       return;
     }
-  bp = mpi_alloc_limb_space (a->nlimbs, 1);
+  bp = mpi_alloc_limb_space (a->alloced, 1);
   MPN_COPY( bp, ap, a->nlimbs );
   a->d = bp;
   _gcry_mpi_free_limb_space (ap, a->alloced);