X-Git-Url: https://git.openssl.org/?a=blobdiff_plain;ds=sidebyside;f=apps%2Fpkeyutl.c;h=4c267c1eecf1d13c45e484262b9415c0fd2f5bef;hb=9e2e7b34eb5db71247403ecd641f580d83da944a;hp=da7dc2e4cdf4baf960a6bab482bfd76e5a58a4b3;hpb=333b070ec06d7a67538ee9d5312656a19e802dc1;p=openssl.git diff --git a/apps/pkeyutl.c b/apps/pkeyutl.c index da7dc2e4cd..4c267c1eec 100644 --- a/apps/pkeyutl.c +++ b/apps/pkeyutl.c @@ -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; }