summaryrefslogtreecommitdiffstats
path: root/crypto/engine
diff options
context:
space:
mode:
authorTomas Mraz <tmraz@fedoraproject.org>2020-05-21 13:16:57 +0200
committerTomas Mraz <tmraz@fedoraproject.org>2020-05-22 14:50:35 +0200
commite512efe0894481679a5d3c57d10bf4ea97046c2a (patch)
tree2159841535dceb57890b8a1b4263637324bc9fd4 /crypto/engine
parent2f4023e88962d3375ff30ad5011a310dacf0ad3f (diff)
Prevent use after free of global_engine_lock
If buggy application calls engine functions after cleanup of engines already happened the global_engine_lock will be used although already freed. See for example: https://bugzilla.redhat.com/show_bug.cgi?id=1831086 Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/11896) (cherry picked from commit e12813d0d31f4f7be2ccc592d382ef3e94bdb842)
Diffstat (limited to 'crypto/engine')
-rw-r--r--crypto/engine/eng_lib.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/crypto/engine/eng_lib.c b/crypto/engine/eng_lib.c
index b851ff6957..dd87ebaca7 100644
--- a/crypto/engine/eng_lib.c
+++ b/crypto/engine/eng_lib.c
@@ -171,6 +171,7 @@ void engine_cleanup_int(void)
cleanup_stack = NULL;
}
CRYPTO_THREAD_lock_free(global_engine_lock);
+ global_engine_lock = NULL;
}
/* Now the "ex_data" support */