Commit 35d13c7a authored by Andy Shevchenko's avatar Andy Shevchenko
Browse files

platform/x86: thinkpad_acpi: Use strndup_user() in dispatch_proc_write()



Simplify the user copy code by using strndup_user().

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
parent be51bd45
Loading
Loading
Loading
Loading
+3 −11
Original line number Diff line number Diff line
@@ -885,19 +885,11 @@ static ssize_t dispatch_proc_write(struct file *file,

	if (!ibm || !ibm->write)
		return -EINVAL;
	if (count > PAGE_SIZE - 1)
		return -EINVAL;

	kernbuf = kmalloc(count + 1, GFP_KERNEL);
	if (!kernbuf)
		return -ENOMEM;

	if (copy_from_user(kernbuf, userbuf, count)) {
		kfree(kernbuf);
		return -EFAULT;
	}
	kernbuf = strndup_user(userbuf, PAGE_SIZE);
	if (IS_ERR(kernbuf))
		return PTR_ERR(kernbuf);

	kernbuf[count] = 0;
	ret = ibm->write(kernbuf);
	if (ret == 0)
		ret = count;