diff options
author | Richard Levitte <levitte@openssl.org> | 2017-04-06 10:24:55 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2017-04-06 10:28:43 +0200 |
commit | 5006b37b31c5a520c3065048bd8aba8cc3ff128d (patch) | |
tree | 960e4ade63e2ddc70345819de8906aa3c4191683 /crypto | |
parent | 5748e4dc3ab1cdde43ae6feecb106e3a41adcdf4 (diff) | |
download | openssl-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)
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/rand/rand_lib.c | 2 |
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); |