summaryrefslogtreecommitdiffstats
path: root/crypto/rand
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2016-09-05 14:12:58 +0100
committerMatt Caswell <matt@openssl.org>2016-09-08 12:43:04 +0100
commitea42bd40595faefb19e2ec8d7a9efad4f75cff80 (patch)
treece8ae6da767bf017e685132438a2428c56a9231f /crypto/rand
parentbaee63371d568a2439cd1dddf584bcdf19b7cbbc (diff)
Fix mem leaks during auto-deinit
Certain functions are automatically called during auto-deinit in order to deallocate resources. However, if we have never entered a function which marks lib crypto as inited then they never get called. This can happen if the user only ever makes use of a small sub-set of functions that don't hit the auto-init code. This commit ensures all such resources deallocated by these functions also init libcrypto when they are initially allocated. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Ben Laurie <ben@openssl.org> (cherry picked from commit 135648bcd0e9db029582d3d7627a90a1b566c5d6)
Diffstat (limited to 'crypto/rand')
-rw-r--r--crypto/rand/md_rand.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/crypto/rand/md_rand.c b/crypto/rand/md_rand.c
index 7924478e9e..85ce4e6f98 100644
--- a/crypto/rand/md_rand.c
+++ b/crypto/rand/md_rand.c
@@ -89,6 +89,7 @@ static RAND_METHOD rand_meth = {
DEFINE_RUN_ONCE_STATIC(do_rand_lock_init)
{
+ OPENSSL_init_crypto(0, NULL);
rand_lock = CRYPTO_THREAD_lock_new();
rand_tmp_lock = CRYPTO_THREAD_lock_new();
return rand_lock != NULL && rand_tmp_lock != NULL;