@@ -324,13 +324,16 @@ static void ossl_init_engine_afalg(void)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef OPENSSL_NO_COMP
|
||||
static CRYPTO_ONCE zlib = CRYPTO_ONCE_STATIC_INIT;
|
||||
|
||||
static int zlib_inited = 0;
|
||||
static void ossl_init_zlib(void)
|
||||
{
|
||||
/* Do nothing - we need to know about this for the later cleanup */
|
||||
zlib_inited = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void ossl_init_thread_stop(struct thread_local_inits_st *locals)
|
||||
{
|
||||
@@ -426,6 +429,7 @@ void OPENSSL_cleanup(void)
|
||||
* conditions for the various "*_inited" vars below.
|
||||
*/
|
||||
|
||||
#ifndef OPENSSL_NO_COMP
|
||||
if (zlib_inited) {
|
||||
#ifdef OPENSSL_INIT_DEBUG
|
||||
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
|
||||
@@ -433,6 +437,7 @@ void OPENSSL_cleanup(void)
|
||||
#endif
|
||||
COMP_zlib_cleanup();
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef OPENSSL_NO_ASYNC
|
||||
if (async_inited) {
|
||||
@@ -600,9 +605,11 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef OPENSSL_NO_COMP
|
||||
if ((opts & OPENSSL_INIT_ZLIB)
|
||||
&& CRYPTO_THREAD_run_once(&zlib, ossl_init_zlib))
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -214,7 +214,9 @@ static const EVP_CIPHER *ssl_cipher_methods[SSL_ENC_NUM_IDX] = {
|
||||
|
||||
static STACK_OF(SSL_COMP) *ssl_comp_methods = NULL;
|
||||
|
||||
#ifndef OPENSSL_NO_COMP
|
||||
static CRYPTO_ONCE ssl_load_builtin_comp_once = CRYPTO_ONCE_STATIC_INIT;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Constant SSL_MAX_DIGEST equal to size of digests array should be defined
|
||||
@@ -621,7 +623,6 @@ int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc,
|
||||
#ifndef OPENSSL_NO_COMP
|
||||
load_builtin_compressions();
|
||||
#endif
|
||||
|
||||
*comp = NULL;
|
||||
ctmp.id = s->compress_meth;
|
||||
if (ssl_comp_methods != NULL) {
|
||||
|
||||
Reference in New Issue
Block a user