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

Commit b6cbf3ef authored by Ian Campbell's avatar Ian Campbell Committed by Dmitry Torokhov
Browse files

Input: return correct value when setting up absolute device via uinipt.



uinput_alloc_device() is supposed to return the number of bytes read,
the value is returned to uinput_write() and from there to userspace. If
EV_ABS is set then it returns the value from uinput_validate_absbits()
instead, which is zero when everything is ok instead of the count.

Signed-off-by: default avatarIan Campbell <icampbell@arcom.com>
Acked-by: default avatarAristeu Rozanski <aris@cathedrallabs.org>
Signed-off-by: default avatarVojtech Pavlik <vojtech@suse.cz>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent c30b4c10
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -298,10 +298,12 @@ static int uinput_alloc_device(struct file *file, const char __user *buffer, siz
	/* check if absmin/absmax/absfuzz/absflat are filled as
	 * told in Documentation/input/input-programming.txt */
	if (test_bit(EV_ABS, dev->evbit)) {
		retval = uinput_validate_absbits(dev);
		if (retval < 0)
		int err = uinput_validate_absbits(dev);
		if (err < 0) {
			retval = err;
			kfree(dev->name);
		}
	}

exit:
	kfree(user_dev);