From: Mike Yuan Date: Fri, 1 Mar 2024 10:57:13 +0000 (+0800) Subject: dlfcn-util: use safe_dlclose for dlclosep X-Git-Tag: v256-rc1~676^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F31565%2Fhead;p=thirdparty%2Fsystemd.git dlfcn-util: use safe_dlclose for dlclosep --- diff --git a/src/shared/dlfcn-util.h b/src/shared/dlfcn-util.h index 7d8cb4c9abe..050f1e2da74 100644 --- a/src/shared/dlfcn-util.h +++ b/src/shared/dlfcn-util.h @@ -5,7 +5,17 @@ #include "macro.h" -DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(void*, dlclose, NULL); +static inline void* safe_dlclose(void *dl) { + if (!dl) + return NULL; + + assert_se(dlclose(dl) == 0); + return NULL; +} + +static inline void dlclosep(void **dlp) { + safe_dlclose(*dlp); +} int dlsym_many_or_warn_sentinel(void *dl, int log_level, ...) _sentinel_; int dlopen_many_sym_or_warn_sentinel(void **dlp, const char *filename, int log_level, ...) _sentinel_; @@ -29,11 +39,3 @@ int dlopen_many_sym_or_warn_sentinel(void **dlp, const char *filename, int log_l /* libbpf is a bit confused about type-safety and API compatibility. Provide a macro that can tape over that mess. Sad. */ #define DLSYM_ARG_FORCE(arg) \ &sym_##arg, STRINGIFY(arg) - -static inline void *safe_dlclose(void *p) { - if (!p) - return NULL; - - assert_se(dlclose(p) == 0); - return NULL; -}