summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Mraz <tomas@openssl.org>2024-04-11 09:27:47 +0200
committerTomas Mraz <tomas@openssl.org>2024-04-12 11:01:51 +0200
commitc6a784afa28526a84a2cc20b18a20f26ea480f0f (patch)
tree1cdc22b9694f981dd4005fec38ca7da6eef39722
parentbfa293cd2ac93d69f2bbd4e0546bb02a93eb8806 (diff)
ossl_provider_new(): Fix memory leak on error
Fixes #24095 Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24100) (cherry picked from commit 875db35ac63beb0e5a3d520743fa55ad2e5ccd1d)
-rw-r--r--crypto/provider_core.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/provider_core.c b/crypto/provider_core.c
index 8046b0b48c..b0cb039705 100644
--- a/crypto/provider_core.c
+++ b/crypto/provider_core.c
@@ -564,8 +564,10 @@ OSSL_PROVIDER *ossl_provider_new(OSSL_LIB_CTX *libctx, const char *name,
if (params[i].data_type != OSSL_PARAM_UTF8_STRING)
continue;
if (ossl_provider_info_add_parameter(&template, params[i].key,
- (char *)params[i].data) <= 0)
+ (char *)params[i].data) <= 0) {
+ sk_INFOPAIR_pop_free(template.parameters, infopair_free);
return NULL;
+ }
}
}