From a1aa214134b2843ab30f5fbe9a71321984bd3120 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Fri, 26 Dec 2014 09:32:59 +0100 Subject: [PATCH] modprobe: allow slashes in modaliases with 'modprobe -a' --- modutils/modprobe.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/modutils/modprobe.c b/modutils/modprobe.c index f090428..6ccc18e 100644 --- a/modutils/modprobe.c +++ b/modutils/modprobe.c @@ -238,17 +238,6 @@ static void add_probe(const char *name) { struct module_entry *m; - /* - * get_or_add_modentry() strips path from name and works - * on remaining basename. - * This would make "rmmod dir/name" and "modprobe dir/name" - * to work like "rmmod name" and "modprobe name", - * which is wrong, and can be abused via implicit modprobing: - * "ifconfig /usbserial up" tries to modprobe netdev-/usbserial. - */ - if (strchr(name, '/')) - bb_error_msg_and_die("malformed module name '%s'", name); - m = get_or_add_modentry(name); if (!(option_mask32 & (OPT_REMOVE | OPT_SHOW_DEPS)) && (m->flags & MODULE_FLAG_LOADED) @@ -617,6 +606,17 @@ int modprobe_main(int argc UNUSED_PARAM, char **argv) } else { /* First argument is module name, rest are parameters */ DBG("probing just module %s", *argv); + /* + * get_or_add_modentry() strips path from name and works + * on remaining basename. + * This would make "rmmod dir/name" and "modprobe dir/name" + * to work like "rmmod name" and "modprobe name", + * which is wrong, and can be abused via implicit modprobing: + * "ifconfig /usbserial up" tries to modprobe netdev-/usbserial. + */ + if (strchr(argv[0], '/')) + bb_error_msg_and_die("malformed module name '%s'", argv[0]); + add_probe(argv[0]); G.cmdline_mopts = parse_cmdline_module_options(argv, /*quote_spaces:*/ 1); } -- 2.2.1