Input: refuse to register absolute devices without absinfo
Subsystems (2)
Dmitry Torokhov
maintainerPATCH 1/1 Input: refuse to register absolute devices without absinfo
If device is supposed to send absolute events (i.e. EV_ABS bit is set in dev->evbit) but dev->absinfo is not allocated, then the driver has done something wrong, and we should not register such device. Otherwise we'll crash later, when driver tries to send absolute event.
--- drivers/input/input.c | 6 ++++++ 1 file changed, 6 insertions(+)
drivers/input/input.c +6 -0
@@ -2095,6 +2095,12 @@ int input_register_device(struct input_dev *dev)const char *path;int error; +if (test_bit (EV_ABS , dev->evbit) && !dev->absinfo) { +dev_err (&dev->dev, +"Absolute device without dev->absinfo, refusing to register\n" ); +return -EINVAL ; + } +if (dev->devres_managed) { devres =devres_alloc (devm_input_device_unregister,sizeof (struct input_devres ),GFP_KERNEL );
Signature · 5 lines
2.11.0.483.g087da7b7c-goog -- Dmitry
Quoted 7 lines · Dmitry Torokhov
If device is supposed to send absolute events (i.e.
EV_ABSbit is set indev->evbit) butdev->absinfois not allocated, then the driver has done something wrong, and we should not register such device. Otherwise we'll crash later, when driver tries to send absolute event.Signed-off-by Dmitry Torokhov <[email protected]>---
Looks good to me:
Cheers,
Benjamin
Quoted 26 lines
drivers/input/input.c | 6 ++++++ 1 file changed, 6 insertions(+)drivers/input/input.c +6
-0@@ -2095,6 +2095,12 @@ int input_register_device(struct input_dev *dev)const char *path;int error; +if (test_bit (EV_ABS , dev->evbit) && !dev->absinfo) { +dev_err (&dev->dev, +"Absolute device without dev->absinfo, refusing to register\n" ); +return -EINVAL ; + } +if (dev->devres_managed) { devres =devres_alloc (devm_input_device_unregister,sizeof (struct input_devres ),GFP_KERNEL );Signature · 5 lines
2.11.0.483.g087da7b7c-goog -- Dmitry
Quoted 6 lines · Dmitry Torokhov
If device is supposed to send absolute events (i.e.
EV_ABSbit is set indev->evbit) butdev->absinfois not allocated, then the driver has done something wrong, and we should not register such device. Otherwise we'll crash later, when driver tries to send absolute event.Signed-off-by Dmitry Torokhov <[email protected]>
Thanks.
Signature · 2 lines
Jiri Kosina SUSE Labs