kmod_module_insert_module will never return -EEXIST given the check for initstate prior to the call. Check for EPERM instead and throw an appropriate error when an unprivileged user attempts to load a module. --- TODO | 2 -- tools/kmod-modprobe.c | 10 ++++------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/TODO b/TODO index 5dd906d..6bd5736 100644 --- a/TODO +++ b/TODO @@ -21,8 +21,6 @@ Features: - deal with dependency loop - break dependency loop when all it needs is to check if the module is already loaded - - check if user has permission to load module and print an error instead of - returning 0 * Add manpages: copy them from module-init-tools and make the necessary changes diff --git a/tools/kmod-modprobe.c b/tools/kmod-modprobe.c index 7d9c667..5289c44 100644 --- a/tools/kmod-modprobe.c +++ b/tools/kmod-modprobe.c @@ -807,12 +807,10 @@ static int insmod_do(struct kmod_module *mod, const char *extra_opts) flags |= KMOD_INSERT_FORCE_VERMAGIC; err = kmod_module_insert_module(mod, flags, opts); - if (err == -EEXIST) { - if (!first_time) - err = 0; - else - ERR("Module %s already in kernel.\n", - kmod_module_get_name(mod)); + if (err == -EPERM) { + ERR("could not insert '%s': %s\n", kmod_module_get_name(mod), + strerror(-err)); + goto error; } } -- 1.7.8.3 -- To unsubscribe from this list: send the line "unsubscribe linux-modules" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html