diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2016-11-03 08:05:04 +1000 |
---|---|---|
committer | Benjamin Tissoires <benjamin.tissoires@gmail.com> | 2016-11-08 10:42:26 +0100 |
commit | 338c1ddc48162ef7898a507a30748ef94d40d545 (patch) | |
tree | b8fb409163962921cbc86795be0088465b82b047 | |
parent | a0c367dee60731ead0652beb3dd53fd274bc0ce5 (diff) |
Fail when reading an EV_foo index greater than EV_MAX
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Daniel Martin <consume.noise@gmail.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-rw-r--r-- | src/evemu.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/evemu.c b/src/evemu.c index 49302fd..b3a0c1a 100644 --- a/src/evemu.c +++ b/src/evemu.c @@ -537,6 +537,11 @@ static int parse_mask(struct evemu_device *dev, const char *line) return -1; } + if (index >= EV_CNT) { + error(FATAL, "Invalid EV_* index %#x in line: %s", index, line); + return -1; + } + for (i = 0; i < sizeof(mask) * 8; i++) { if (bit_is_set(mask, i)) { struct input_absinfo abs = {0}; /* dummy */ |