From 9d7a0588b3e375fa29adca030656fed816cf18e5 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Thu, 6 Apr 2017 10:24:55 +0200 Subject: [PATCH] In rand_cleanup_int(), don't go creating a default method If no default method was yet given, RAND_get_rand_method() will set it up. Doing so just to clean it away seems pretty silly, so instead, use the default_RAND_meth variable directly. This also clears a possible race condition where this will try to init things, such as ERR or ENGINE when in the middle of a OPENSSL_cleanup. Fixes #3128 Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/3136) (cherry picked from commit 5006b37b31c5a520c3065048bd8aba8cc3ff128d) --- crypto/rand/rand_lib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto/rand/rand_lib.c b/crypto/rand/rand_lib.c index 238712671b..60c1b17fba 100644 --- a/crypto/rand/rand_lib.c +++ b/crypto/rand/rand_lib.c @@ -79,7 +79,7 @@ int RAND_set_rand_engine(ENGINE *engine) void rand_cleanup_int(void) { - const RAND_METHOD *meth = RAND_get_rand_method(); + const RAND_METHOD *meth = default_RAND_meth; if (meth && meth->cleanup) meth->cleanup(); RAND_set_rand_method(NULL); -- 2.25.1