summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2013-10-24 14:18:30 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2013-10-24 15:13:41 +1000
commit03c3e4f9759b98a6a3b1f64534c1a078a6858d0e (patch)
treecfb3d2cdd16d73041bfdd2c572850945837a9c27
parentb15e5987b35b61ca6ca447f37c5bc759523b118b (diff)
Disallow disabling EV_SYN event codes
The documentation already says that, make it happen. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
-rw-r--r--libevdev/libevdev.c2
-rw-r--r--test/test-libevdev-has-event.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c
index d84e67e..8315d9b 100644
--- a/libevdev/libevdev.c
+++ b/libevdev/libevdev.c
@@ -1213,7 +1213,7 @@ libevdev_disable_event_code(struct libevdev *dev, unsigned int type, unsigned in
unsigned int max;
unsigned long *mask = NULL;
- if (type > EV_MAX)
+ if (type > EV_MAX || type == EV_SYN)
return -1;
max = type_to_mask(dev, type, &mask);
diff --git a/test/test-libevdev-has-event.c b/test/test-libevdev-has-event.c
index 242f991..5af3530 100644
--- a/test/test-libevdev-has-event.c
+++ b/test/test-libevdev-has-event.c
@@ -847,6 +847,7 @@ START_TEST(test_device_disable_bit_invalid)
ck_assert_int_eq(libevdev_disable_event_code(dev, EV_MAX + 1, ABS_MAX + 1), -1);
ck_assert_int_eq(libevdev_disable_event_type(dev, EV_MAX + 1), -1);
ck_assert_int_eq(libevdev_disable_event_type(dev, EV_SYN), -1);
+ ck_assert_int_eq(libevdev_disable_event_code(dev, EV_SYN, SYN_REPORT), -1);
uinput_device_free(uidev);
libevdev_free(dev);