Fix -pkeyopt and fix error check.
authorDr. Stephen Henson <steve@openssl.org>
Tue, 1 Mar 2016 17:22:51 +0000 (17:22 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Tue, 1 Mar 2016 17:25:35 +0000 (17:25 +0000)
Reviewed-by: Rich Salz <rsalz@openssl.org>
apps/pkeyutl.c

index 91ef8d7..3d78499 100644 (file)
@@ -217,7 +217,7 @@ int pkeyutl_main(int argc, char **argv)
         case OPT_PKEYOPT:
             if ((pkeyopts == NULL &&
                  (pkeyopts = sk_OPENSSL_STRING_new_null()) == NULL) ||
         case OPT_PKEYOPT:
             if ((pkeyopts == NULL &&
                  (pkeyopts = sk_OPENSSL_STRING_new_null()) == NULL) ||
-                sk_OPENSSL_STRING_push(pkeyopts, *++argv) == 0) {
+                sk_OPENSSL_STRING_push(pkeyopts, opt_arg()) == 0) {
                 BIO_puts(bio_err, "out of memory\n");
                 goto end;
             }
                 BIO_puts(bio_err, "out of memory\n");
                 goto end;
             }
@@ -334,7 +334,8 @@ int pkeyutl_main(int argc, char **argv)
                       buf_out, (size_t *)&buf_outlen,
                       buf_in, (size_t)buf_inlen);
     }
                       buf_out, (size_t *)&buf_outlen,
                       buf_in, (size_t)buf_inlen);
     }
-    if (rv < 0) {
+    if (rv <= 0) {
+        BIO_puts(bio_err, "Public Key operation error\n");
         ERR_print_errors(bio_err);
         goto end;
     }
         ERR_print_errors(bio_err);
         goto end;
     }