diff --git a/src/conf.c b/src/conf.c index e284e80a..167d753b 100644 --- a/src/conf.c +++ b/src/conf.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #ifdef _LIBITE_LITE diff --git a/src/mdadm.c b/src/mdadm.c index b6d19d47..d8bb3c53 100644 --- a/src/mdadm.c +++ b/src/mdadm.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "helpers.h" diff --git a/src/plugin.c b/src/plugin.c index 884faa1c..cb459336 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -28,6 +28,7 @@ #include /* readdir() et al */ #include #include +#include #ifdef _LIBITE_LITE # include # include /* BSD sys/queue.h API */ @@ -86,9 +87,11 @@ int plugin_register(plugin_t *plugin) if (!plugin->name) { #ifndef ENABLE_STATIC Dl_info info; + char *dli_fname = strdup(info.dli_fname); - if (dladdr(plugin, &info) && info.dli_fname) - plugin->name = basename(info.dli_fname); + if (dladdr(plugin, &info) && dli_fname) + plugin->name = basename(dli_fname); + free(dli_fname); #endif if (!plugin->name) plugin->name = "unknown";