diff options
author | Ruili Fang <ruili.fang.98@gmail.com> | 2023-01-28 23:48:24 -0500 |
---|---|---|
committer | Pauli <pauli@openssl.org> | 2023-02-01 08:20:08 +1100 |
commit | e788c772b12eea5ced4ce46619e13acf0e0eb6ba (patch) | |
tree | 8f8b0ddfe09d1f84f59418be52c5e833ae21bdda /crypto | |
parent | 0414899887b98f973067f286ac126d8b529873e3 (diff) |
Fix a potential memory leak in crypto/provider_child.c
Fix issue #20063.
CLA: trivial
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/20163)
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/provider_child.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/provider_child.c b/crypto/provider_child.c index b1eadd5b19..176a3a5cb2 100644 --- a/crypto/provider_child.c +++ b/crypto/provider_child.c @@ -135,8 +135,10 @@ static int provider_create_child_cb(const OSSL_CORE_HANDLE *prov, void *cbdata) 1)) == NULL) goto err; - if (!ossl_provider_activate(cprov, 0, 0)) + if (!ossl_provider_activate(cprov, 0, 0)) { + ossl_provider_free(cprov); goto err; + } if (!ossl_provider_set_child(cprov, prov) || !ossl_provider_add_to_store(cprov, NULL, 0)) { |