summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2016-04-06 11:19:55 +0100
committerMatt Caswell <matt@openssl.org>2016-04-13 08:52:33 +0100
commitf3cd81d6538e6295eaa279acd65ad10faeccd2ed (patch)
tree26117ea3e3651aff964d42a7b986afd935c6ebeb /crypto
parentb22234deebe2e1758d59c64778ce462f11f16cb4 (diff)
Deprecate RAND_cleanup() and make it a no-op
RAND_cleanup() should not be called expicitly - we should leave auto-deinit to clean this up instead. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/include/internal/rand.h11
-rw-r--r--crypto/init.c10
-rw-r--r--crypto/rand/rand_lib.c4
3 files changed, 18 insertions, 7 deletions
diff --git a/crypto/include/internal/rand.h b/crypto/include/internal/rand.h
new file mode 100644
index 0000000000..f1a9389425
--- /dev/null
+++ b/crypto/include/internal/rand.h
@@ -0,0 +1,11 @@
+/*
+ * Licensed under the OpenSSL licenses, (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * https://www.openssl.org/source/license.html
+ * or in the file LICENSE in the source distribution.
+ */
+
+#include <openssl/rand.h>
+
+void rand_cleanup_intern(void);
diff --git a/crypto/init.c b/crypto/init.c
index 3699145ac6..d93f282818 100644
--- a/crypto/init.c
+++ b/crypto/init.c
@@ -58,7 +58,7 @@
#include <internal/threads.h>
#include <internal/cryptlib_int.h>
#include <openssl/err.h>
-#include <openssl/rand.h>
+#include <internal/rand.h>
#include <openssl/evp.h>
#include <internal/evp_int.h>
#include <internal/conf.h>
@@ -453,7 +453,7 @@ void OPENSSL_cleanup(void)
#ifdef OPENSSL_INIT_DEBUG
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
- "RAND_cleanup()\n");
+ "rand_cleanup_intern()\n");
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
"CONF_modules_free()\n");
#ifndef OPENSSL_NO_ENGINE
@@ -471,14 +471,14 @@ void OPENSSL_cleanup(void)
#endif
/*
* Note that cleanup order is important:
- * - RAND_cleanup could call an ENINGE's RAND cleanup function so must be
- * called before ENGINE_cleanup()
+ * - rand_cleanup_intern could call an ENINGE's RAND cleanup function so
+ * must be called before ENGINE_cleanup()
* - ENGINEs use CRYPTO_EX_DATA and therefore, must be cleaned up
* before the ex data handlers are wiped in CRYPTO_cleanup_all_ex_data().
* - CONF_modules_free() can end up in ENGINE code so must be called before
* ENGINE_cleanup()
*/
- RAND_cleanup();
+ rand_cleanup_intern();
CONF_modules_free();
#ifndef OPENSSL_NO_ENGINE
ENGINE_cleanup();
diff --git a/crypto/rand/rand_lib.c b/crypto/rand/rand_lib.c
index 36b41cda80..f5998f80aa 100644
--- a/crypto/rand/rand_lib.c
+++ b/crypto/rand/rand_lib.c
@@ -59,7 +59,7 @@
#include <time.h>
#include "internal/cryptlib.h"
#include <openssl/opensslconf.h>
-#include <openssl/rand.h>
+#include "internal/rand.h"
#include <openssl/engine.h>
@@ -125,7 +125,7 @@ int RAND_set_rand_engine(ENGINE *engine)
}
#endif
-void RAND_cleanup(void)
+void rand_cleanup_intern(void)
{
const RAND_METHOD *meth = RAND_get_rand_method();
if (meth && meth->cleanup)