From bf7ae7500073f85fed8a82c4f8ec981d44a8c3d6 Mon Sep 17 00:00:00 2001 From: Bernd Edlinger Date: Sat, 28 Apr 2018 19:09:55 +0200 Subject: [PATCH] Don't cleanup uninitialized thread local slots Fixes: #6120 Reviewed-by: Kurt Roeckx (Merged from https://github.com/openssl/openssl/pull/6123) --- crypto/rand/drbg_lib.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/crypto/rand/drbg_lib.c b/crypto/rand/drbg_lib.c index c6397b22c6..60ddd2fe20 100644 --- a/crypto/rand/drbg_lib.c +++ b/crypto/rand/drbg_lib.c @@ -912,11 +912,13 @@ err1: /* Clean up the global DRBGs before exit */ void rand_drbg_cleanup_int(void) { - RAND_DRBG_free(master_drbg); - master_drbg = NULL; + if (master_drbg != NULL) { + RAND_DRBG_free(master_drbg); + master_drbg = NULL; - CRYPTO_THREAD_cleanup_local(&private_drbg); - CRYPTO_THREAD_cleanup_local(&public_drbg); + CRYPTO_THREAD_cleanup_local(&private_drbg); + CRYPTO_THREAD_cleanup_local(&public_drbg); + } } void drbg_delete_thread_state() -- 2.34.1