1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
From a1aa214134b2843ab30f5fbe9a71321984bd3120 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
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
|