From 68cd53ff2a475b7592ebe1e77e685ec47eeb292f Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Wed, 3 Apr 2024 12:07:43 +0100
Subject: [PATCH 0485/1160] dlopen: log debug message when a library is
 dlopened

Useful to track what is being used and when

(cherry picked from commit dd6c0df65cd9c0c19cbd655772824c90125347b4)
---
 src/shared/bpf-dlopen.c | 4 ++++
 src/shared/dlfcn-util.c | 2 ++
 src/shared/idn-util.c   | 5 ++++-
 src/shared/tpm2-util.c  | 2 ++
 4 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/shared/bpf-dlopen.c b/src/shared/bpf-dlopen.c
index 2e49b2ea5d..f00dbeabae 100644
--- a/src/shared/bpf-dlopen.c
+++ b/src/shared/bpf-dlopen.c
@@ -74,6 +74,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,
@@ -87,6 +89,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/dlfcn-util.c b/src/shared/dlfcn-util.c
index a321df3c67..8022f55294 100644
--- a/src/shared/dlfcn-util.c
+++ b/src/shared/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/idn-util.c b/src/shared/idn-util.c
index 6f36688dc0..26a9d608ec 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 892e5c7388..02e0e3b803 100644
--- a/src/shared/tpm2-util.c
+++ b/src/shared/tpm2-util.c
@@ -666,6 +666,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),
-- 
2.33.0