diff options
Diffstat (limited to 'modutils/modutils.c')
-rw-r--r-- | modutils/modutils.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/modutils/modutils.c b/modutils/modutils.c index ff79d3f..84300d9 100644 --- a/modutils/modutils.c +++ b/modutils/modutils.c @@ -47,13 +47,14 @@ int FAST_FUNC string_to_llist(char *string, llist_t **llist, const char *delim) char* FAST_FUNC filename2modname(const char *filename, char *modname) { + char local_modname[MODULE_NAME_LEN]; int i; const char *from; if (filename == NULL) return NULL; if (modname == NULL) - modname = xmalloc(MODULE_NAME_LEN); + modname = local_modname; // Disabled since otherwise "modprobe dir/name" would work // as if it is "modprobe name". It is unclear why // 'basenamization' was here in the first place. @@ -63,6 +64,9 @@ char* FAST_FUNC filename2modname(const char *filename, char *modname) modname[i] = (from[i] == '-') ? '_' : from[i]; modname[i] = '\0'; + if (modname == local_modname) + return xstrdup(modname); + return modname; } |