summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2016-10-06 09:31:34 +0200
committerRichard Levitte <levitte@openssl.org>2016-10-19 12:17:45 +0200
commit1c6aab6a527b057133b470fa8c778e3d45f1605a (patch)
tree006c16a8aa1a5fc8e811eafc36418a72692b1827 /apps
parent99c002b305705a3d1e092402bc092de1943fbc27 (diff)
downloadopenssl-new-1c6aab6a527b057133b470fa8c778e3d45f1605a.tar.gz
Make 'openssl prime ""' not segfault
Fixes RT#4699 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1668)
Diffstat (limited to 'apps')
-rw-r--r--apps/prime.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/apps/prime.c b/apps/prime.c
index 1fb1c8d845..133167f2d4 100644
--- a/apps/prime.c
+++ b/apps/prime.c
@@ -128,16 +128,24 @@ int MAIN(int argc, char **argv)
BIO_printf(bio_out, "%s\n", s);
OPENSSL_free(s);
} else {
+ 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, " is %sprime\n",
BN_is_prime_ex(bn, checks, NULL, NULL) ? "" : "not ");
}
+ end:
BN_free(bn);
BIO_free_all(bio_out);