summaryrefslogtreecommitdiffstats
path: root/crypto/init.c
diff options
context:
space:
mode:
authorKurt Roeckx <kurt@roeckx.be>2017-08-27 17:46:33 +0200
committerKurt Roeckx <kurt@roeckx.be>2017-08-28 23:15:52 +0200
commit0b14a5b7ccd1618fe47d74a51c4873144c57ac83 (patch)
treeded12ac2db33ca847dc4d22ccb93a138e2c18120 /crypto/init.c
parentb23171744b01e473ebbfd6edad70c1c3825ffbcd (diff)
Don't auto-instantiate a DRBG when trying to use it and it's not
The one creating the DRBG should instantiate it, it's there that we know which parameters we should use to instantiate it. This splits the rand init in two parts to avoid a deadlock because when the global drbg is created it wands to call rand_add on the global rand method. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> GH: #4268
Diffstat (limited to 'crypto/init.c')
-rw-r--r--crypto/init.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/crypto/init.c b/crypto/init.c
index c8f0a3f1ee..ccfd003bb6 100644
--- a/crypto/init.c
+++ b/crypto/init.c
@@ -488,6 +488,7 @@ void OPENSSL_cleanup(void)
* obj_cleanup_int() must be called last
*/
rand_cleanup_int();
+ rand_cleanup_drbg_int();
conf_modules_free_int();
#ifndef OPENSSL_NO_ENGINE
engine_cleanup_int();