dlfcn-util: use safe_dlclose for dlclosep
This commit is contained in:
+11
-9
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user