summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2014-08-21 11:39:17 +0200
committerWerner Koch <wk@gnupg.org>2014-08-21 12:22:37 +0200
commit18056ace7f466cb8c1eaf08e5dc0400516d83b4c (patch)
treec9da7e759ba962071b2a961082d2c5a32326df58 /src
parent34bb55ee36df3aca3ebca88f8b61c786cd0c0701 (diff)
downloadlibgcrypt-18056ace7f466cb8c1eaf08e5dc0400516d83b4c.tar.gz
cipher: Fix possible NULL deref in call to prime generator.
* cipher/primegen.c (_gcry_generate_elg_prime): Change to return an error code. * cipher/dsa.c (generate): Take care of new return code. * cipher/elgamal.c (generate): Change to return an error code. Take care of _gcry_generate_elg_prime return code. (generate_using_x): Take care of _gcry_generate_elg_prime return code. (elg_generate): Propagate return code from generate. -- GnuPG-bug-id: 1699, 1700 Reported-by: S.K. Gupta Note that the NULL deref may have only happened on malloc failure.
Diffstat (limited to 'src')
-rw-r--r--src/g10lib.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/g10lib.h b/src/g10lib.h
index 43dc0113..238871d0 100644
--- a/src/g10lib.h
+++ b/src/g10lib.h
@@ -236,9 +236,12 @@ gcry_mpi_t _gcry_generate_public_prime (unsigned int nbits,
gcry_random_level_t random_level,
int (*extra_check)(void*, gcry_mpi_t),
void *extra_check_arg);
-gcry_mpi_t _gcry_generate_elg_prime (int mode,
- unsigned int pbits, unsigned int qbits,
- gcry_mpi_t g, gcry_mpi_t **factors);
+gcry_err_code_t _gcry_generate_elg_prime (int mode,
+ unsigned int pbits,
+ unsigned int qbits,
+ gcry_mpi_t g,
+ gcry_mpi_t *r_prime,
+ gcry_mpi_t **factors);
gcry_mpi_t _gcry_derive_x931_prime (const gcry_mpi_t xp,
const gcry_mpi_t xp1, const gcry_mpi_t xp2,
const gcry_mpi_t e,