Deprecate CRYPTO_cleanup_all_ex_data() and make it a no-op

CRYPTO_cleanup_all_ex_data() 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>
This commit is contained in:
Matt Caswell 2016-04-04 14:38:45 +01:00
parent f3cd81d653
commit a5e3ac13d6
4 changed files with 7 additions and 5 deletions

View File

@ -175,7 +175,7 @@ static void cleanup_cb(EX_CALLBACK *funcs)
* called under potential race-conditions anyway (it's for program shutdown
* after all).
*/
void CRYPTO_cleanup_all_ex_data(void)
void crypto_cleanup_all_ex_data_intern(void)
{
int i;

View File

@ -113,6 +113,7 @@ void OPENSSL_cpuid_setup(void);
extern unsigned int OPENSSL_ia32cap_P[];
void OPENSSL_showfatal(const char *fmta, ...);
extern int OPENSSL_NONPIC_relocated;
void crypto_cleanup_all_ex_data_intern(void);
#ifdef __cplusplus
}

View File

@ -461,7 +461,7 @@ void OPENSSL_cleanup(void)
"ENGINE_cleanup()\n");
#endif
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
"CRYPTO_cleanup_all_ex_data()\n");
"crypto_cleanup_all_ex_data_intern()\n");
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
"BIO_sock_cleanup()\n");
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
@ -483,7 +483,7 @@ void OPENSSL_cleanup(void)
#ifndef OPENSSL_NO_ENGINE
ENGINE_cleanup();
#endif
CRYPTO_cleanup_all_ex_data();
crypto_cleanup_all_ex_data_intern();
#ifndef OPENSSL_NO_SOCK
BIO_sock_cleanup();
#endif

View File

@ -297,13 +297,14 @@ void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad);
*/
int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val);
void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx);
# if OPENSSL_API_COMPAT < 0x10100000L
/*
* This function cleans up all "ex_data" state. It mustn't be called under
* potential race-conditions.
*/
void CRYPTO_cleanup_all_ex_data(void);
# define CRYPTO_cleanup_all_ex_data()
# if OPENSSL_API_COMPAT < 0x10100000L
/*
* The old locking functions have been removed completely without compatibility
* macros. This is because the old functions either could not properly report