From e69f2a223cf7e2d7f5bcea43e68ce38818813b81 Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Fri, 15 Apr 2016 14:31:03 +0100 Subject: [PATCH] Add missing return value checks Also correct the return value from the the "prime" application Reviewed-by: Richard Levitte --- apps/prime.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/apps/prime.c b/apps/prime.c index b18257de7e..3cbf98d4e6 100644 --- a/apps/prime.c +++ b/apps/prime.c @@ -122,16 +122,26 @@ int prime_main(int argc, char **argv) goto end; } bn = BN_new(); - BN_generate_prime_ex(bn, bits, safe, NULL, NULL, NULL); + if (!BN_generate_prime_ex(bn, bits, safe, NULL, NULL, NULL)) { + BIO_printf(bio_err, "Failed to generate prime.\n"); + goto end; + } s = hex ? BN_bn2hex(bn) : BN_bn2dec(bn); BIO_printf(bio_out, "%s\n", s); OPENSSL_free(s); } else { for ( ; *argv; argv++) { + int r; + if (hex) - BN_hex2bn(&bn, argv[0]); + r = BN_hex2bn(&bn, argv[0]); else - BN_dec2bn(&bn, argv[0]); + r = BN_dec2bn(&bn, argv[0]); + + if(!r) { + BIO_printf(bio_err, "Failed to process value (%s)\n", argv[0]); + goto end; + } BN_print(bio_out, bn); BIO_printf(bio_out, " (%s) %s prime\n", @@ -143,6 +153,7 @@ int prime_main(int argc, char **argv) BN_free(bn); + ret = 0; end: return ret; } -- 2.25.1