From: Ondřej Surý Date: Wed, 7 Feb 2024 14:25:13 +0000 (+0100) Subject: Remove isc__tls_setfatalmode() function and the calls X-Git-Tag: v9.19.22~55^2 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=0c18ed7ec6d2255e591406ef5cccedc2d5896ce5;p=thirdparty%2Fbind9.git Remove isc__tls_setfatalmode() function and the calls With _exit() instead of exit() in place, we don't need isc__tls_setfatalmode() mechanism as the atexit() calls will not be executed including OpenSSL atexit hooks. --- diff --git a/bin/confgen/util.c b/bin/confgen/util.c index 9f65ac1ccc3..5d7ce509e47 100644 --- a/bin/confgen/util.c +++ b/bin/confgen/util.c @@ -47,6 +47,5 @@ fatal(const char *format, ...) { vfprintf(stderr, format, args); va_end(args); fprintf(stderr, "\n"); - isc__tls_setfatalmode(); _exit(EXIT_FAILURE); } diff --git a/bin/delv/delv.c b/bin/delv/delv.c index 4bd00bfa9a3..c3b2d1c6f28 100644 --- a/bin/delv/delv.c +++ b/bin/delv/delv.c @@ -263,7 +263,6 @@ fatal(const char *format, ...) { vfprintf(stderr, format, args); va_end(args); fprintf(stderr, "\n"); - isc__tls_setfatalmode(); _exit(EXIT_FAILURE); } diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index 1f10437a412..1e2303a1af7 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -406,7 +406,6 @@ fatal(const char *format, ...) { vfprintf(stderr, format, args); va_end(args); fprintf(stderr, "\n"); - isc__tls_setfatalmode(); if (fatalexit == 0 && exitcode != 0) { fatalexit = exitcode; } else if (fatalexit == 0) { diff --git a/bin/dnssec/dnssectool.c b/bin/dnssec/dnssectool.c index 34552864e66..6f544446471 100644 --- a/bin/dnssec/dnssectool.c +++ b/bin/dnssec/dnssectool.c @@ -84,9 +84,6 @@ fatal(const char *format, ...) { if (fatalcallback != NULL) { (*fatalcallback)(); } - isc__tls_setfatalmode(); - - /* Make sure that various atexit() calls are skipped */ _exit(EXIT_FAILURE); } diff --git a/bin/named/server.c b/bin/named/server.c index 09929237445..fe4c16ad601 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -10203,7 +10203,6 @@ fatal(const char *msg, isc_result_t result) { NAMED_LOGMODULE_SERVER, ISC_LOG_CRITICAL, "exiting (due to fatal error)"); named_os_shutdown(); - isc__tls_setfatalmode(); _exit(EXIT_FAILURE); } diff --git a/bin/nsupdate/nsupdate.c b/bin/nsupdate/nsupdate.c index bd01da7916f..f81c1965b27 100644 --- a/bin/nsupdate/nsupdate.c +++ b/bin/nsupdate/nsupdate.c @@ -279,7 +279,6 @@ fatal(const char *format, ...) { vfprintf(stderr, format, args); va_end(args); fprintf(stderr, "\n"); - isc__tls_setfatalmode(); _exit(EXIT_FAILURE); } diff --git a/bin/rndc/util.c b/bin/rndc/util.c index 948ca873344..e0529aa7727 100644 --- a/bin/rndc/util.c +++ b/bin/rndc/util.c @@ -46,6 +46,5 @@ fatal(const char *format, ...) { vfprintf(stderr, format, args); va_end(args); fprintf(stderr, "\n"); - isc__tls_setfatalmode(); _exit(EXIT_FAILURE); } diff --git a/bin/tools/mdig.c b/bin/tools/mdig.c index 915d543691d..c1ac42978eb 100644 --- a/bin/tools/mdig.c +++ b/bin/tools/mdig.c @@ -897,7 +897,6 @@ fatal(const char *format, ...) { vfprintf(stderr, format, args); va_end(args); fprintf(stderr, "\n"); - isc__tls_setfatalmode(); _exit(EXIT_FAILURE); } diff --git a/bin/tools/nsec3hash.c b/bin/tools/nsec3hash.c index 046c8b7894e..9d77a10d2a5 100644 --- a/bin/tools/nsec3hash.c +++ b/bin/tools/nsec3hash.c @@ -48,7 +48,6 @@ fatal(const char *format, ...) { vfprintf(stderr, format, args); va_end(args); fprintf(stderr, "\n"); - isc__tls_setfatalmode(); _exit(EXIT_FAILURE); } diff --git a/lib/isc/include/isc/tls.h b/lib/isc/include/isc/tls.h index 109a7f7eab0..75ad88df46e 100644 --- a/lib/isc/include/isc/tls.h +++ b/lib/isc/include/isc/tls.h @@ -615,6 +615,3 @@ isc__tls_shutdown(void); void isc__tls_setdestroycheck(bool check); - -void -isc__tls_setfatalmode(void); diff --git a/lib/isc/tls.c b/lib/isc/tls.c index b2fca8b4591..281c09a92ea 100644 --- a/lib/isc/tls.c +++ b/lib/isc/tls.c @@ -77,12 +77,6 @@ isc__tls_set_thread_id(CRYPTO_THREADID *id) { } #endif -#ifdef ISC_TEST_OPENSSL_MEMORY_LEAKS -static atomic_bool handle_fatal = false; -#else -static atomic_bool handle_fatal = true; -#endif - #if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x30000000L /* * This was crippled with LibreSSL, so just skip it: @@ -115,7 +109,7 @@ isc__tls_free_ex(void *ptr, const char *file, int line) { if (ptr == NULL) { return; } - if (!atomic_load(&handle_fatal) || isc__tls_mctx != NULL) { + if (isc__tls_mctx != NULL) { isc__mem_free(isc__tls_mctx, ptr, 0, file, (unsigned int)line); } } @@ -143,7 +137,7 @@ isc__tls_free_ex(void *ptr, const char *file, int line) { if (ptr == NULL) { return; } - if (!atomic_load(&handle_fatal) || isc__tls_mctx != NULL) { + if (isc__tls_mctx != NULL) { isc__mem_free(isc__tls_mctx, ptr, 0); } } @@ -1796,8 +1790,3 @@ isc_tlsctx_set_random_session_id_context(isc_tlsctx_t *ctx) { RUNTIME_CHECK( SSL_CTX_set_session_id_context(ctx, session_id_ctx, len) == 1); } - -void -isc__tls_setfatalmode(void) { - atomic_store(&handle_fatal, true); -}