modprobe,rmmod: reject module names with slashes

function                                             old     new   delta
add_probe                                             86     113     +27

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2014-11-20 18:24:33 +01:00
parent f5add44981
commit 4e314faa0a

View File

@ -238,6 +238,17 @@ 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)