Add missing return value checks Also correct the return value from the the "prime" application Reviewed-by: Richard Levitte <levitte@openssl.org>
diff --git a/apps/prime.c b/apps/prime.c index b18257d..3cbf98d 100644 --- a/apps/prime.c +++ b/apps/prime.c
@@ -122,16 +122,26 @@ 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 @@ BN_free(bn); + ret = 0; end: return ret; }