aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2017-04-06 10:24:55 +0200
committerRichard Levitte <levitte@openssl.org>2017-04-06 10:28:43 +0200
commit5006b37b31c5a520c3065048bd8aba8cc3ff128d (patch)
tree960e4ade63e2ddc70345819de8906aa3c4191683
parent5748e4dc3ab1cdde43ae6feecb106e3a41adcdf4 (diff)
downloadopenssl-5006b37b31c5a520c3065048bd8aba8cc3ff128d.tar.gz
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 <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3136)
-rw-r--r--crypto/rand/rand_lib.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/rand/rand_lib.c b/crypto/rand/rand_lib.c
index fc47dc97a2..ad452504e6 100644
--- a/crypto/rand/rand_lib.c
+++ b/crypto/rand/rand_lib.c
@@ -74,7 +74,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);