Don't try setting an ABS code without data

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
This commit is contained in:
Peter Hutterer 2013-07-26 16:53:04 +10:00
parent b311e74d6e
commit 6a1a0f4f0c
2 changed files with 4 additions and 0 deletions

View file

@ -854,6 +854,8 @@ libevdev_enable_event_code(struct libevdev *dev, unsigned int type,
if (type != EV_ABS && data != NULL)
return -1;
else if (type == EV_ABS && data == NULL)
return -1;
if (type == EV_SYN)
return 0;

View file

@ -571,6 +571,8 @@ START_TEST(test_device_enable_bit_invalid)
ck_assert_int_eq(libevdev_enable_event_code(dev, EV_MAX + 1, ABS_MAX + 1, &abs), -1);
ck_assert_int_eq(libevdev_enable_event_type(dev, EV_MAX + 1), -1);
ck_assert_int_eq(libevdev_enable_event_code(dev, EV_ABS, ABS_Y, NULL), -1);
uinput_device_free(uidev);
libevdev_free(dev);
}