From: Luca Boccassi Date: Wed, 3 Apr 2024 11:07:43 +0000 (+0100) Subject: dlopen: log debug message when a library is dlopened X-Git-Tag: v256-rc1~328^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dd6c0df65cd9c0c19cbd655772824c90125347b4;p=thirdparty%2Fsystemd.git dlopen: log debug message when a library is dlopened Useful to track what is being used and when --- diff --git a/src/basic/dlfcn-util.c b/src/basic/dlfcn-util.c index a321df3c672..8022f552943 100644 --- a/src/basic/dlfcn-util.c +++ b/src/basic/dlfcn-util.c @@ -49,6 +49,8 @@ int dlopen_many_sym_or_warn_sentinel(void **dlp, const char *filename, int log_l return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "%s is not installed: %s", filename, dlerror()); + log_debug("Loaded '%s' via dlopen()", filename); + va_list ap; va_start(ap, log_level); r = dlsym_many_or_warnv(dl, log_level, ap); diff --git a/src/shared/bpf-dlopen.c b/src/shared/bpf-dlopen.c index 1b4aa903e61..6d59001b2c7 100644 --- a/src/shared/bpf-dlopen.c +++ b/src/shared/bpf-dlopen.c @@ -76,6 +76,8 @@ int dlopen_bpf(void) { return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "neither libbpf.so.1 nor libbpf.so.0 are installed: %s", dlerror()); + log_debug("Loaded 'libbpf.so.0' via dlopen()"); + /* symbols deprecated in 1.0 we use as compat */ r = dlsym_many_or_warn( dl, LOG_DEBUG, @@ -89,6 +91,8 @@ int dlopen_bpf(void) { #endif ); } else { + log_debug("Loaded 'libbpf.so.1' via dlopen()"); + /* symbols available from 0.7.0 */ r = dlsym_many_or_warn( dl, LOG_DEBUG, diff --git a/src/shared/idn-util.c b/src/shared/idn-util.c index 70f039f8252..6b26f2064a1 100644 --- a/src/shared/idn-util.c +++ b/src/shared/idn-util.c @@ -50,7 +50,10 @@ int dlopen_idn(void) { if (!dl) return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "libidn support is not installed: %s", dlerror()); - } + log_debug("Loaded 'libidn.so.11' via dlopen()"); + } else + log_debug("Loaded 'libidn.so.12' via dlopen()"); + r = dlsym_many_or_warn( dl, diff --git a/src/shared/tpm2-util.c b/src/shared/tpm2-util.c index 203cf5fb3ad..42975cdb970 100644 --- a/src/shared/tpm2-util.c +++ b/src/shared/tpm2-util.c @@ -668,6 +668,8 @@ int tpm2_context_new(const char *device, Tpm2Context **ret_context) { if (!context->tcti_dl) return log_debug_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE), "Failed to load %s: %s", fn, dlerror()); + log_debug("Loaded '%s' via dlopen()", fn); + func = dlsym(context->tcti_dl, TSS2_TCTI_INFO_SYMBOL); if (!func) return log_debug_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE), diff --git a/src/shared/userdb.c b/src/shared/userdb.c index d262c82d63b..75dece34429 100644 --- a/src/shared/userdb.c +++ b/src/shared/userdb.c @@ -1455,6 +1455,8 @@ int userdb_block_nss_systemd(int b) { return 0; } + log_debug("Loaded '%s' via dlopen()", LIBDIR "/libnss_systemd.so.2"); + call = dlsym(dl, "_nss_systemd_block"); if (!call) /* If the file is installed but lacks the symbol we expect, things are weird, let's complain */