diff options
author | Werner Koch <wk@gnupg.org> | 2003-10-10 14:23:35 +0000 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2003-10-10 14:23:35 +0000 |
commit | 1f0fb630b61869d15d6f1cf07de804000e34846f (patch) | |
tree | 58699b3548ed94e4742698a215caa702b03a8d75 /cipher | |
parent | 5a6f5f2881b615845f1f660c98561d209313efab (diff) | |
download | libgcrypt-1f0fb630b61869d15d6f1cf07de804000e34846f.tar.gz |
* primegen.c (gcry_prime_generate): Make sure PRIME is set to NULL
even on error.
Diffstat (limited to 'cipher')
-rw-r--r-- | cipher/ChangeLog | 2 | ||||
-rw-r--r-- | cipher/primegen.c | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/cipher/ChangeLog b/cipher/ChangeLog index 10ff54df..af5f114e 100644 --- a/cipher/ChangeLog +++ b/cipher/ChangeLog @@ -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. diff --git a/cipher/primegen.c b/cipher/primegen.c index cc082e52..ed3420d9 100644 --- a/cipher/primegen.c +++ b/cipher/primegen.c @@ -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++) ; |