summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKovalev Vasiliy <minskij10@yandex.ru>2023-05-04 16:12:33 +0400
committerTomas Mraz <tomas@openssl.org>2023-05-09 17:31:43 +0200
commit8c63b14296f117b07781509ced529a8955d78fb9 (patch)
tree2e9dd2a5daa3df514789a4bc13086a30ab194788
parent507356598bc1e17a08f9737df50e1a19525efa88 (diff)
downloadopenssl-new-8c63b14296f117b07781509ced529a8955d78fb9.tar.gz
Fix memory leak in engine_cleanup_add_first()
Fixes #20870 Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/20880)
-rw-r--r--crypto/engine/eng_lib.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/crypto/engine/eng_lib.c b/crypto/engine/eng_lib.c
index 40e0413a26..b10751336f 100644
--- a/crypto/engine/eng_lib.c
+++ b/crypto/engine/eng_lib.c
@@ -140,8 +140,9 @@ void engine_cleanup_add_first(ENGINE_CLEANUP_CB *cb)
if (!int_cleanup_check(1))
return;
item = int_cleanup_item(cb);
- if (item)
- sk_ENGINE_CLEANUP_ITEM_insert(cleanup_stack, item, 0);
+ if (item != NULL)
+ if (sk_ENGINE_CLEANUP_ITEM_insert(cleanup_stack, item, 0) <= 0)
+ OPENSSL_free(item);
}
void engine_cleanup_add_last(ENGINE_CLEANUP_CB *cb)