Fix memory leak in do_rand_drbg_init()
Fixes #5076 Since do_rand_drbg_init() allocates three locks, it needs to ensure that OPENSSL_init_crypto() is called, otherwise these resources are not cleaned up properly. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/5083)
This commit is contained in:
parent
d17bdfc26d
commit
39571fcabf
1 changed files with 7 additions and 0 deletions
|
@ -708,6 +708,13 @@ err:
|
|||
*/
|
||||
DEFINE_RUN_ONCE_STATIC(do_rand_drbg_init)
|
||||
{
|
||||
/*
|
||||
* ensure that libcrypto is initialized, otherwise the
|
||||
* DRBG locks are not cleaned up properly
|
||||
*/
|
||||
if (!OPENSSL_init_crypto(0, NULL))
|
||||
return 0;
|
||||
|
||||
drbg_master = drbg_setup("drbg_master", NULL);
|
||||
drbg_public = drbg_setup("drbg_public", drbg_master);
|
||||
drbg_private = drbg_setup("drbg_private", drbg_master);
|
||||
|
|
Loading…
Reference in a new issue