Remove SSL_OP_TLS_BLOCK_PADDING_BUG
[openssl.git] / apps / pkeyutl.c
index da7dc2e4cdf4baf960a6bab482bfd76e5a58a4b3..4c267c1eecf1d13c45e484262b9415c0fd2f5bef 100644 (file)
@@ -229,6 +229,9 @@ int pkeyutl_main(int argc, char **argv)
     if (ctx == NULL)
         goto opthelp;
 
+    if (!app_load_modules(NULL))
+        goto end;
+
     if (sigfile && (pkey_op != EVP_PKEY_OP_VERIFY)) {
         BIO_printf(bio_err,
                    "%s: Signature file specified for non verify\n", prog);
@@ -299,13 +302,10 @@ int pkeyutl_main(int argc, char **argv)
     rv = do_keyop(ctx, pkey_op, NULL, (size_t *)&buf_outlen,
                   buf_in, (size_t)buf_inlen);
     if (rv > 0) {
-        buf_out = OPENSSL_malloc(buf_outlen);
-        if (!buf_out)
-            rv = -1;
-        else
-            rv = do_keyop(ctx, pkey_op,
-                          buf_out, (size_t *)&buf_outlen,
-                          buf_in, (size_t)buf_inlen);
+        buf_out = app_malloc(buf_outlen, "buffer output");
+        rv = do_keyop(ctx, pkey_op,
+                      buf_out, (size_t *)&buf_outlen,
+                      buf_in, (size_t)buf_inlen);
     }
     if (rv <= 0) {
         ERR_print_errors(bio_err);
@@ -325,12 +325,9 @@ int pkeyutl_main(int argc, char **argv)
     EVP_PKEY_CTX_free(ctx);
     BIO_free(in);
     BIO_free_all(out);
-    if (buf_in)
-        OPENSSL_free(buf_in);
-    if (buf_out)
-        OPENSSL_free(buf_out);
-    if (sig)
-        OPENSSL_free(sig);
+    OPENSSL_free(buf_in);
+    OPENSSL_free(buf_out);
+    OPENSSL_free(sig);
     return ret;
 }
 
@@ -416,10 +413,7 @@ static EVP_PKEY_CTX *init_ctx(int *pkeysize,
     }
 
  end:
-
-    if (passin)
-        OPENSSL_free(passin);
-
+    OPENSSL_free(passin);
     return ctx;
 
 }