char name[];
};
-static char *path_to_modname(const char *path, char buf[NAME_MAX], size_t *len)
+static inline char *modname_normalize(char *modname, char buf[NAME_MAX],
+ size_t *len)
{
- char *modname;
char *c;
size_t s;
- modname = basename(path);
- if (modname == NULL || modname[0] == '\0')
- return NULL;
-
if (buf) {
buf[NAME_MAX] = '\0';
modname = strncpy(buf, modname, NAME_MAX - 1);
return modname;
}
+static char *path_to_modname(const char *path, char buf[NAME_MAX], size_t *len)
+{
+ char *modname;
+
+ modname = basename(path);
+ if (modname == NULL || modname[0] == '\0')
+ return NULL;
+
+ return modname_normalize(modname, buf, len);
+}
+
int kmod_module_parse_depline(struct kmod_module *mod, char *line)
{
struct kmod_ctx *ctx = mod->ctx;
if (ctx == NULL || name == NULL)
return -ENOENT;
- path_to_modname(name, name_norm, &namelen);
+ modname_normalize((char *)name, name_norm, &namelen);
m = kmod_pool_get_module(ctx, name_norm);
if (m != NULL) {