Commit 39571fca authored by Dr. Matthias St. Pierre's avatar Dr. Matthias St. Pierre Committed by Benjamin Kaduk
Browse files

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: default avatarMatt Caswell <matt@openssl.org>
Reviewed-by: default avatarBen Kaduk <kaduk@mit.edu>
(Merged from https://github.com/openssl/openssl/pull/5083)
parent d17bdfc2
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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);