Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f57cfa4 authored by Oleg Nesterov's avatar Oleg Nesterov Committed by Linus Torvalds
Browse files

usermodehelper: kill the sub_info->path[0] check



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: default avatarOleg Nesterov <oleg@redhat.com>
Acked-by: default avatarRusty Russell <rusty@rustcorp.com.au>
Cc: Lucas De Marchi <lucas.de.marchi@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 77d55918
Loading
Loading
Loading
Loading
+3 −8
Original line number Original line Diff line number Diff line
@@ -147,6 +147,9 @@ int __request_module(bool wait, const char *fmt, ...)
	 */
	 */
	WARN_ON_ONCE(wait && current_is_async());
	WARN_ON_ONCE(wait && current_is_async());


	if (!modprobe_path[0])
		return 0;

	va_start(args, fmt);
	va_start(args, fmt);
	ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, args);
	ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, args);
	va_end(args);
	va_end(args);
@@ -569,14 +572,6 @@ int call_usermodehelper_exec(struct subprocess_info *sub_info, int wait)
	int retval = 0;
	int retval = 0;


	helper_lock();
	helper_lock();
	if (!sub_info->path) {
		retval = -EINVAL;
		goto out;
	}

	if (sub_info->path[0] == '\0')
		goto out;

	if (!khelper_wq || usermodehelper_disabled) {
	if (!khelper_wq || usermodehelper_disabled) {
		retval = -EBUSY;
		retval = -EBUSY;
		goto out;
		goto out;