summaryrefslogtreecommitdiff
path: root/libevdev/libevdev.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2013-08-29 15:38:53 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2013-08-30 17:40:54 +1000
commitb77fea9c8943fd77893a68ec66028edfbe8a7654 (patch)
treebf6e0234c5c267d110b662ac2e4b06508feb95f3 /libevdev/libevdev.c
parenta8871e7aea98ec9fd0b148259a2a3543cdd27118 (diff)
downloadlibevdev-b77fea9c8943fd77893a68ec66028edfbe8a7654.tar.gz
Fix off-by-one errors when dealing with *_MAX values.
LED_MAX, KEY_MAX, ABS_MT_MAX, etc. are all valid event codes Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Diffstat (limited to 'libevdev/libevdev.c')
-rw-r--r--libevdev/libevdev.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c
index 95d041c..73405bc 100644
--- a/libevdev/libevdev.c
+++ b/libevdev/libevdev.c
@@ -312,7 +312,7 @@ sync_key_state(struct libevdev *dev)
if (rc < 0)
goto out;
- for (i = 0; i < KEY_MAX; i++) {
+ for (i = 0; i < KEY_CNT; i++) {
int old, new;
old = bit_is_set(dev->key_values, i);
new = bit_is_set(keystate, i);
@@ -366,7 +366,7 @@ sync_led_state(struct libevdev *dev)
if (rc < 0)
goto out;
- for (i = 0; i < LED_MAX; i++) {
+ for (i = 0; i < LED_CNT; i++) {
int old, new;
old = bit_is_set(dev->led_values, i);
new = bit_is_set(ledstate, i);
@@ -387,7 +387,7 @@ sync_abs_state(struct libevdev *dev)
int rc;
int i;
- for (i = ABS_X; i <= ABS_MAX; i++) {
+ for (i = ABS_X; i < ABS_CNT; i++) {
struct input_absinfo abs_info;
if (i >= ABS_MT_MIN && i <= ABS_MT_MAX)
@@ -423,7 +423,7 @@ sync_mt_state(struct libevdev *dev, int create_events)
int val[MAX_SLOTS];
} mt_state[ABS_MT_CNT];
- for (i = ABS_MT_MIN; i < ABS_MT_MAX; i++) {
+ for (i = ABS_MT_MIN; i <= ABS_MT_MAX; i++) {
int idx;
if (i == ABS_MT_SLOT)
continue;
@@ -447,7 +447,7 @@ sync_mt_state(struct libevdev *dev, int create_events)
init_event(dev, ev, EV_ABS, ABS_MT_SLOT, i);
}
- for (j = ABS_MT_MIN; j < ABS_MT_MAX; j++) {
+ for (j = ABS_MT_MIN; j <= ABS_MT_MAX; j++) {
int jdx = j - ABS_MT_MIN;
if (j == ABS_MT_SLOT)