summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorIngo Franzki <ifranzki@linux.ibm.com>2023-10-16 14:06:04 +0200
committerMatt Caswell <matt@openssl.org>2023-10-25 09:24:29 +0100
commit4e09305ee092dea14b7d4feb3fac2889b41428f3 (patch)
treef12c55cb48a1011ad83ef010d34ebf3ed9e40ce6 /apps
parent66f4782f1452d6fbfab78822b340a99aaeacc2f0 (diff)
speed: Fix memory leaks
Free the PKEYs created for KEM and signature algorithms. Free the encrypt/decrypt PKEY contexts for RSA. Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Todd Short <todd.short@me.com> (Merged from https://github.com/openssl/openssl/pull/22399)
Diffstat (limited to 'apps')
-rw-r--r--apps/speed.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/apps/speed.c b/apps/speed.c
index 44e3af7591..ac86d9e3a9 100644
--- a/apps/speed.c
+++ b/apps/speed.c
@@ -3828,10 +3828,13 @@ skip_hmac:
loopargs[i].kem_out[testnum] = out;
loopargs[i].kem_send_secret[testnum] = send_secret;
loopargs[i].kem_rcv_secret[testnum] = rcv_secret;
+ EVP_PKEY_free(pkey);
+ pkey = NULL;
break;
kem_err_break:
ERR_print_errors(bio_err);
+ EVP_PKEY_free(pkey);
op_count = 1;
kem_checks = 0;
break;
@@ -4005,10 +4008,13 @@ skip_hmac:
loopargs[i].sig_max_sig_len[testnum] = max_sig_len;
loopargs[i].sig_act_sig_len[testnum] = sig_len;
loopargs[i].sig_sig[testnum] = sig;
+ EVP_PKEY_free(pkey);
+ pkey = NULL;
break;
sig_err_break:
ERR_print_errors(bio_err);
+ EVP_PKEY_free(pkey);
op_count = 1;
sig_checks = 0;
break;
@@ -4295,6 +4301,8 @@ skip_hmac:
for (k = 0; k < RSA_NUM; k++) {
EVP_PKEY_CTX_free(loopargs[i].rsa_sign_ctx[k]);
EVP_PKEY_CTX_free(loopargs[i].rsa_verify_ctx[k]);
+ EVP_PKEY_CTX_free(loopargs[i].rsa_encrypt_ctx[k]);
+ EVP_PKEY_CTX_free(loopargs[i].rsa_decrypt_ctx[k]);
}
#ifndef OPENSSL_NO_DH
OPENSSL_free(loopargs[i].secret_ff_a);