]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
usermodehelper: kill the sub_info->path[0] check
authorOleg Nesterov <oleg@redhat.com>
Wed, 19 Jun 2013 00:08:17 +0000 (10:08 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 19 Jun 2013 07:27:39 +0000 (17:27 +1000)
call_usermodehelper_exec() does nothing but returns success if path[0] ==
0.  The only user which needs this strange feature is request_module(), it
can check modprobe_path[0] itself like other users do if they want to
detect the "disabled by admin" case.

Kill it.  Not only it looks strange, it can confuse other callers.  And
this allows us to revert 264b83c0 ("usermodehelper: check
subprocess_info->path != NULL"), do_execve(NULL) is safe.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Lucas De Marchi <lucas.de.marchi@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
kernel/kmod.c

index 8241906c4b61a0887304f6524516563707d1a876..fb326365b69466158b03b726e53c4fe15448fa89 100644 (file)
@@ -147,6 +147,9 @@ int __request_module(bool wait, const char *fmt, ...)
         */
        WARN_ON_ONCE(wait && current_is_async());
 
+       if (!modprobe_path[0])
+               return 0;
+
        va_start(args, fmt);
        ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, args);
        va_end(args);
@@ -569,14 +572,6 @@ int call_usermodehelper_exec(struct subprocess_info *sub_info, int wait)
        int retval = 0;
 
        helper_lock();
-       if (!sub_info->path) {
-               retval = -EINVAL;
-               goto out;
-       }
-
-       if (sub_info->path[0] == '\0')
-               goto out;
-
        if (!khelper_wq || usermodehelper_disabled) {
                retval = -EBUSY;
                goto out;