diff options
author | Tomas Mraz <tomas@openssl.org> | 2024-04-11 09:27:47 +0200 |
---|---|---|
committer | Tomas Mraz <tomas@openssl.org> | 2024-04-12 11:01:57 +0200 |
commit | 51caffb5c187bb2c633e0da9f5928fced4fae7ed (patch) | |
tree | baecd6b654b6b0789d743ab9f3d19700064f6303 | |
parent | d207c4c44215e44b92fd031bf84ff3045055b3bf (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.c | 4 |
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; + } } } |