* primegen.c (gcry_prime_generate): Make sure PRIME is set to NULL
authorWerner Koch <wk@gnupg.org>
Fri, 10 Oct 2003 14:23:35 +0000 (14:23 +0000)
committerWerner Koch <wk@gnupg.org>
Fri, 10 Oct 2003 14:23:35 +0000 (14:23 +0000)
  even on error.

cipher/ChangeLog
cipher/primegen.c

index 10ff54d..af5f114 100644 (file)
@@ -8,7 +8,7 @@
        * primegen.c (prime_generate_internal): New arg
        ALL_FACTORS. Changed all callers.
        (gcry_prime_generate): Make the factors arg optional. Request
-       all_factors.
+       all_factors.  Make sure PRIME is set to NULL even on error.
        (gcry_prime_group_generator): New.
        (gcry_prime_release_factors): New.
 
index cc082e5..ed3420d 100644 (file)
@@ -834,6 +834,10 @@ gcry_prime_generate (gcry_mpi_t *prime, unsigned int prime_bits,
   gcry_mpi_t prime_generated = NULL;
   unsigned int mode = 0;
 
+  if (!prime)
+    return gpg_error (GPG_ERR_INV_ARG);
+  *prime = NULL; 
+
   if (flags & GCRY_PRIME_FLAG_SPECIAL_FACTOR)
     mode = 1;
 
@@ -907,6 +911,7 @@ gcry_prime_group_generator (gcry_mpi_t *r_g,
 
   if (!factors || !r_g || !prime)
     return gpg_error (GPG_ERR_INV_ARG);
+  *r_g = NULL; 
 
   for (n=0; factors[n]; n++)
     ;