summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2004-02-10 19:40:05 +0000
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2004-02-10 19:40:05 +0000
commit773197f2b0320f0097325a60ff19c29187c67a33 (patch)
treeca14676327a61868a7da840919d93140c3cac717
parent418f337faecddc8b494541245209f7e6eab8f212 (diff)
downloadgnutls-773197f2b0320f0097325a60ff19c29187c67a33.tar.gz
Fixed some bugs. Patch by Brieuc Jeunhomme <bbp@via.ecp.fr>.
-rw-r--r--lib/gnutls_dh_primes.c14
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);