]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
dlfcn-util: use safe_dlclose for dlclosep 31565/head
authorMike Yuan <me@yhndnzj.com>
Fri, 1 Mar 2024 10:57:13 +0000 (18:57 +0800)
committerMike Yuan <me@yhndnzj.com>
Fri, 1 Mar 2024 10:59:50 +0000 (18:59 +0800)
src/shared/dlfcn-util.h

index 7d8cb4c9abe21bfe3e1ae235de59dfb56191f8e2..050f1e2da748a9047aef34136e0cb50e4e9c60cd 100644 (file)
@@ -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;
-}