diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2004-02-10 19:40:05 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2004-02-10 19:40:05 +0000 |
commit | 773197f2b0320f0097325a60ff19c29187c67a33 (patch) | |
tree | ca14676327a61868a7da840919d93140c3cac717 | |
parent | 418f337faecddc8b494541245209f7e6eab8f212 (diff) | |
download | gnutls-773197f2b0320f0097325a60ff19c29187c67a33.tar.gz |
Fixed some bugs. Patch by Brieuc Jeunhomme <bbp@via.ecp.fr>.
-rw-r--r-- | lib/gnutls_dh_primes.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/gnutls_dh_primes.c b/lib/gnutls_dh_primes.c index 6bbd179b8a..4fdf442b8d 100644 --- a/lib/gnutls_dh_primes.c +++ b/lib/gnutls_dh_primes.c @@ -69,19 +69,27 @@ int _gnutls_dh_generate_prime(GNUTLS_MPI * ret_g, GNUTLS_MPI * ret_n, int result, times = 0, qbits; GNUTLS_MPI *factors = NULL; + /* useless since gcry_prime_group_generator allocates its own MPI + * fixed by BBP */ +#if 0 g = mpi_new(16); /* this should be ok */ if (g == NULL) { gnutls_assert(); result = GNUTLS_E_MEMORY_ERROR; goto cleanup; } +#endif + /* useless + memleak since gcry_prime_generate allocates irs own prime + * fixed by BBP */ +#if 0 prime = mpi_new(32); if (prime == NULL) { gnutls_assert(); result = GNUTLS_E_MEMORY_ERROR; goto cleanup; } +#endif /* Calculate the size of a prime factor of (prime-1)/2. * This is a bad emulation of Michael Wiener's table @@ -97,6 +105,12 @@ int _gnutls_dh_generate_prime(GNUTLS_MPI * ret_g, GNUTLS_MPI * ret_n, /* find a prime number of size bits. */ do { + /* fixed by BBP */ + if (times) { + _gnutls_mpi_release(&prime); + gcry_prime_release_factors (factors); + } + err = gcry_prime_generate( &prime, bits, qbits, &factors, NULL, NULL, GCRY_STRONG_RANDOM, GCRY_PRIME_FLAG_SPECIAL_FACTOR); |