From e12813d0d31f4f7be2ccc592d382ef3e94bdb842 Mon Sep 17 00:00:00 2001
From: Tomas Mraz <tmraz@fedoraproject.org>
Date: Thu, 21 May 2020 13:16:57 +0200
Subject: [PATCH] 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)
---
 crypto/engine/eng_lib.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/crypto/engine/eng_lib.c b/crypto/engine/eng_lib.c
index 4ba235ca75..0cdb3fde42 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 */
-- 
2.25.1