[PATCH v1 2/2] Input: uinput: align UI_ABS_SETUP validation with uapi docs

From: Iván Ezequiel Rodriguez

Date: Mon Aug 31 2026 - 14:04:36 EST


Return -EINVAL for out-of-range axis codes and reject ABS_MT_SLOT
configurations whose minimum is not zero, as documented in uapi.

Signed-off-by: Iván Ezequiel Rodriguez <ivanrwcm25@xxxxxxxxx>
---
drivers/input/misc/uinput.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/input/misc/uinput.c b/drivers/input/misc/uinput.c
index d32fa4b508fc..e05c80182252 100644
--- a/drivers/input/misc/uinput.c
+++ b/drivers/input/misc/uinput.c
@@ -424,6 +424,13 @@ static int uinput_validate_absinfo(struct input_dev *dev, unsigned int code,
min = abs->minimum;
max = abs->maximum;

+ if (code == ABS_MT_SLOT && min != 0) {
+ printk(KERN_DEBUG
+ "%s: abs[%02x] minimum must be 0\n",
+ UINPUT_NAME, code);
+ return -EINVAL;
+ }
+
if ((min != 0 || max != 0) && max < min) {
printk(KERN_DEBUG
"%s: invalid abs[%02x] min:%d max:%d\n",
@@ -524,7 +531,7 @@ static int uinput_abs_setup(struct uinput_device *udev,
return -EFAULT;

if (setup.code > ABS_MAX)
- return -ERANGE;
+ return -EINVAL;

dev = udev->dev;

--
2.43.0