Refactor, ensure basenm() returns a const char pointer of its arg.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg committed 2024-01-06 23:46:17 +01:00
1 parent f29e92be21
commit 791df0c986
4 files changed
+16 -12

No files matched your search

+8 -5
View File
@@ -78,23 +78,26 @@ static char *trim_ext(char *name)
int plugin_register(plugin_t *plugin)
{
const char *nm;
if (!plugin) {
errno = EINVAL;
return 1;
}
/* Setup default name if none is provided */
if (!plugin->name) {
nm = plugin->name;
if (!nm) {
#ifndef ENABLE_STATIC
Dl_info info;
if (dladdr(plugin, &info) && info.dli_fname)
plugin->name = basenm(info.dli_fname);
nm = basenm(info.dli_fname);
#endif
if (!plugin->name)
plugin->name = "unknown";
if (!nm)
nm = "unknown";
}
plugin->name = trim_ext(strdup(plugin->name));
plugin->name = trim_ext(strdup(nm));
/* Already registered? */
if (plugin_find(plugin->name)) {