diff options
author | Werner Koch <wk@gnupg.org> | 2013-09-07 10:06:46 +0200 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2013-09-16 15:46:34 +0200 |
commit | a7a9cdcaaf3979baa18dad51e722882581349f45 (patch) | |
tree | e4491c7fd6a35054238411385141714ca4cea5f4 /mpi/mpi-internal.h | |
parent | bc5199a02abe428ad377443280b3eda60141a1d6 (diff) | |
download | libgcrypt-a7a9cdcaaf3979baa18dad51e722882581349f45.tar.gz |
Fix bug in _gcry_mpi_tdiv_q_2exp.
* mpi/mpi-internal.h (MPN_COPY_INCR): Make it work.
--
This bug has been with us since the version 0.0.0 of GnuPG.
Fortunately it only affects an optimized code path which is rarely
used in practice: If the shift size matches the size of a
limb (i.e.. 32 or 64); this is is_prime in primegen.c. Over there the
Rabin-Miller test may fail with a probability of 2^-31 (that is if the
to be tested prime - 1 has the low 32 bits cleared). In practice the
probability is even much less because we first do a Fermat test on the
randomly generated candidates which sorts out the majority of
composite numbers.
The bug in MPN_COPY_INCR was found by Sven Bjorn.
Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'mpi/mpi-internal.h')
-rw-r--r-- | mpi/mpi-internal.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mpi/mpi-internal.h b/mpi/mpi-internal.h index 178378fe..898ca47e 100644 --- a/mpi/mpi-internal.h +++ b/mpi/mpi-internal.h @@ -92,7 +92,7 @@ typedef int mpi_size_t; /* (must be a signed type) */ do { \ mpi_size_t _i; \ for( _i = 0; _i < (n); _i++ ) \ - (d)[_i] = (d)[_i]; \ + (d)[_i] = (s)[_i]; \ } while (0) #define MPN_COPY_DECR( d, s, n ) \ |