Skip to content

Commit

Permalink
err: get rid of err_free_strings_int()
Browse files Browse the repository at this point in the history
Even though the function is not part of the public api, it is not
entirely removed, in order to minimize the chance of breakage,
because it is exported from libcrypto. Instead, we keep a dummy
implementation.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from #17974)

(cherry picked from commit 1c8787d)
  • Loading branch information
mspncp committed May 10, 2022
1 parent 3e83079 commit 39f7f54
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 22 deletions.
3 changes: 1 addition & 2 deletions crypto/err/err.c
Original file line number Diff line number Diff line change
Expand Up @@ -327,8 +327,7 @@ int ERR_unload_strings(int lib, ERR_STRING_DATA *str)

void err_free_strings_int(void)
{
if (!RUN_ONCE(&err_string_init, do_err_strings_init))
return;
/* obsolete */
}

/********************************************************/
Expand Down
8 changes: 1 addition & 7 deletions crypto/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_load_crypto_nodelete)
}

static CRYPTO_ONCE load_crypto_strings = CRYPTO_ONCE_STATIC_INIT;
static int load_crypto_strings_inited = 0;

DEFINE_RUN_ONCE_STATIC(ossl_init_load_crypto_strings)
{
int ret = 1;
Expand All @@ -181,7 +181,6 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_load_crypto_strings)
#if !defined(OPENSSL_NO_ERR) && !defined(OPENSSL_NO_AUTOERRINIT)
OSSL_TRACE(INIT, "ossl_err_load_crypto_strings()\n");
ret = ossl_err_load_crypto_strings();
load_crypto_strings_inited = 1;
#endif
return ret;
}
Expand Down Expand Up @@ -388,11 +387,6 @@ void OPENSSL_cleanup(void)
async_deinit();
}

if (load_crypto_strings_inited) {
OSSL_TRACE(INIT, "OPENSSL_cleanup: err_free_strings_int()\n");
err_free_strings_int();
}

/*
* Note that cleanup order is important:
* - ossl_rand_cleanup_int could call an ENGINE's RAND cleanup function so
Expand Down
14 changes: 1 addition & 13 deletions ssl/ssl_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_ssl_base)
}

static CRYPTO_ONCE ssl_strings = CRYPTO_ONCE_STATIC_INIT;
static int ssl_strings_inited = 0;

DEFINE_RUN_ONCE_STATIC(ossl_init_load_ssl_strings)
{
/*
Expand All @@ -56,7 +56,6 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_load_ssl_strings)
#if !defined(OPENSSL_NO_ERR) && !defined(OPENSSL_NO_AUTOERRINIT)
OSSL_TRACE(INIT, "ossl_init_load_ssl_strings: ossl_err_load_SSL_strings()\n");
ossl_err_load_SSL_strings();
ssl_strings_inited = 1;
#endif
return 1;
}
Expand All @@ -82,17 +81,6 @@ static void ssl_library_stop(void)
ssl_comp_free_compression_methods_int();
#endif
}

if (ssl_strings_inited) {
OSSL_TRACE(INIT, "ssl_library_stop: err_free_strings_int()\n");
/*
* If both crypto and ssl error strings are inited we will end up
* calling err_free_strings_int() twice - but that's ok. The second
* time will be a no-op. It's easier to do that than to try and track
* between the two libraries whether they have both been inited.
*/
err_free_strings_int();
}
}

/*
Expand Down

0 comments on commit 39f7f54

Please sign in to comment.