Add missing return value checks
authorMatt Caswell <matt@openssl.org>
Fri, 15 Apr 2016 13:31:03 +0000 (14:31 +0100)
committerMatt Caswell <matt@openssl.org>
Thu, 21 Apr 2016 09:51:57 +0000 (10:51 +0100)
Also correct the return value from the the "prime" application

Reviewed-by: Richard Levitte <levitte@openssl.org>
apps/prime.c

index b18257d..3cbf98d 100644 (file)
@@ -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;
 }