summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2016-11-03 08:05:04 +1000
committerBenjamin Tissoires <benjamin.tissoires@gmail.com>2016-11-08 10:42:26 +0100
commit338c1ddc48162ef7898a507a30748ef94d40d545 (patch)
treeb8fb409163962921cbc86795be0088465b82b047
parenta0c367dee60731ead0652beb3dd53fd274bc0ce5 (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.c5
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 */