mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 14:07:59 +00:00
Merge branch '3869-dig-fails-to-cleanup-openssl-references' into 'main'
Resolve "Dig fails to cleanup OpenSSL references" Closes #3869 See merge request isc-projects/bind9!7535
This commit is contained in:
@@ -2195,6 +2195,7 @@ plus_option(char *option, bool is_batchfile, bool *need_clone,
|
||||
|
||||
#if !TARGET_OS_IPHONE
|
||||
exit_or_usage:
|
||||
cleanup_openssl_refs();
|
||||
digexit();
|
||||
#endif /* if !TARGET_OS_IPHONE */
|
||||
}
|
||||
|
@@ -2334,6 +2334,7 @@ setup_lookup(dig_lookup_t *lookup) {
|
||||
clear_current_lookup();
|
||||
return (false);
|
||||
#else /* if TARGET_OS_IPHONE */
|
||||
cleanup_openssl_refs();
|
||||
digexit();
|
||||
#endif /* if TARGET_OS_IPHONE */
|
||||
}
|
||||
@@ -4660,6 +4661,25 @@ cancel_all(void) {
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
cleanup_openssl_refs(void) {
|
||||
if (tsigkey != NULL) {
|
||||
debug("freeing TSIG key %p", tsigkey);
|
||||
dns_tsigkey_detach(&tsigkey);
|
||||
}
|
||||
|
||||
if (sig0key != NULL) {
|
||||
debug("freeing SIG(0) key %p", sig0key);
|
||||
dst_key_free(&sig0key);
|
||||
}
|
||||
|
||||
if (is_dst_up) {
|
||||
debug("destroy DST lib");
|
||||
dst_lib_destroy();
|
||||
is_dst_up = false;
|
||||
}
|
||||
}
|
||||
|
||||
/*%
|
||||
* Destroy all of the libs we are using, and get everything ready for a
|
||||
* clean shutdown.
|
||||
@@ -4681,27 +4701,13 @@ destroy_libs(void) {
|
||||
|
||||
clear_searchlist();
|
||||
|
||||
if (tsigkey != NULL) {
|
||||
debug("freeing TSIG key %p", tsigkey);
|
||||
dns_tsigkey_detach(&tsigkey);
|
||||
}
|
||||
|
||||
if (sig0key != NULL) {
|
||||
debug("freeing SIG(0) key %p", sig0key);
|
||||
dst_key_free(&sig0key);
|
||||
}
|
||||
cleanup_openssl_refs();
|
||||
|
||||
if (namebuf != NULL) {
|
||||
debug("freeing key %p", tsigkey);
|
||||
isc_buffer_free(&namebuf);
|
||||
}
|
||||
|
||||
if (is_dst_up) {
|
||||
debug("destroy DST lib");
|
||||
dst_lib_destroy();
|
||||
is_dst_up = false;
|
||||
}
|
||||
|
||||
debug("Removing log context");
|
||||
isc_log_destroy(&lctx);
|
||||
|
||||
|
@@ -296,6 +296,9 @@ warn(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
|
||||
noreturn void
|
||||
digexit(void);
|
||||
|
||||
void
|
||||
cleanup_openssl_refs(void);
|
||||
|
||||
void
|
||||
debug(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
|
||||
|
||||
|
Reference in New Issue
Block a user