diff options
author | NIIBE Yutaka <gniibe@fsij.org> | 2015-11-25 12:13:04 +0900 |
---|---|---|
committer | NIIBE Yutaka <gniibe@fsij.org> | 2015-11-25 12:13:04 +0900 |
commit | f88adee3e1f3e2de7d63f92f90bfb3078afd3b4f (patch) | |
tree | d409870b7fe3ca8f3aaef3507a748a50a30946d4 /mpi/mpiutil.c | |
parent | 8ad682c412047d3b9196950709dbd7bd14ac8732 (diff) | |
download | libgcrypt-f88adee3e1f3e2de7d63f92f90bfb3078afd3b4f.tar.gz |
mpi: fix gcry_mpi_swap_cond.
* mpi/mpiutil.c (_gcry_mpi_swap_cond): Relax the condition.
Diffstat (limited to 'mpi/mpiutil.c')
-rw-r--r-- | mpi/mpiutil.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/mpi/mpiutil.c b/mpi/mpiutil.c index d3264c72..99402b82 100644 --- a/mpi/mpiutil.c +++ b/mpi/mpiutil.c @@ -582,11 +582,15 @@ void _gcry_mpi_swap_cond (gcry_mpi_t a, gcry_mpi_t b, unsigned long swap) { mpi_size_t i; - mpi_size_t nlimbs = a->alloced; + mpi_size_t nlimbs; mpi_limb_t mask = ((mpi_limb_t)0) - swap; mpi_limb_t x; - if (a->alloced != b->alloced) + if (a->alloced > b->alloced) + nlimbs = b->alloced; + else + nlimbs = a->alloced; + if (a->nlimbs > nlimbs || b->nlimbs > nlimbs) log_bug ("mpi_swap_cond: different sizes\n"); for (i = 0; i < nlimbs; i++) |