diff options
| author | Peter Hutterer <peter.hutterer@who-t.net> | 2013-08-29 15:38:53 +1000 |
|---|---|---|
| committer | Peter Hutterer <peter.hutterer@who-t.net> | 2013-08-30 17:40:54 +1000 |
| commit | b77fea9c8943fd77893a68ec66028edfbe8a7654 (patch) | |
| tree | bf6e0234c5c267d110b662ac2e4b06508feb95f3 /libevdev/libevdev.c | |
| parent | a8871e7aea98ec9fd0b148259a2a3543cdd27118 (diff) | |
| download | libevdev-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.c | 10 |
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) |
