diff options
author | Neil Horman <nhorman@openssl.org> | 2024-02-02 08:20:50 -0500 |
---|---|---|
committer | Pauli <ppzgs1@gmail.com> | 2024-04-24 11:39:41 +1000 |
commit | a928f26813e41018d364a5178c53ebb6d49d3e59 (patch) | |
tree | 9d188b61e3d0cd95ecb6f54757f40725ea76e039 /crypto | |
parent | d092208bd694c9f9b276965bcf2d33f164535b2f (diff) |
Coverity found the following issues:
1591471
1591474
1591476
which pertain to memory leaks in the conf_mod code
If an error is encountered after the module STACK_OF is duplicated or
created in the new_modules variable, we need to remember to free it in
the error path
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23462)
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/conf/conf_mod.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/crypto/conf/conf_mod.c b/crypto/conf/conf_mod.c index 5c1d00d27c..23912a56cc 100644 --- a/crypto/conf/conf_mod.c +++ b/crypto/conf/conf_mod.c @@ -368,6 +368,7 @@ static CONF_MODULE *module_add(DSO *dso, const char *name, err: ossl_rcu_write_unlock(module_list_lock); + sk_CONF_MODULE_free(new_modules); if (tmod != NULL) { OPENSSL_free(tmod->name); OPENSSL_free(tmod); @@ -466,6 +467,7 @@ static int module_init(CONF_MODULE *pmod, const char *name, const char *value, if (!sk_CONF_IMODULE_push(new_modules, imod)) { ossl_rcu_write_unlock(module_list_lock); + sk_CONF_IMODULE_free(new_modules); ERR_raise(ERR_LIB_CONF, ERR_R_CRYPTO_LIB); goto err; } |