summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2020-07-15 13:32:40 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2020-07-15 13:36:18 +1000
commit66113fe84f62bab3a672a336eb10b255d2aa5ce7 (patch)
tree263b171b194d00fb4c43025ac952e72ba930cdfe
parent4c1b9f3c705233f78129cff955f2c2d446414d1d (diff)
downloadlibevdev-66113fe84f62bab3a672a336eb10b255d2aa5ce7.tar.gz
libevdev: any value less than 0 has a NULL name
Fixes https://gitlab.freedesktop.org/libevdev/libevdev/-/issues/15 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--libevdev/libevdev.c2
-rw-r--r--test/test-event-names.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c
index aefb387..c4729b5 100644
--- a/libevdev/libevdev.c
+++ b/libevdev/libevdev.c
@@ -1742,7 +1742,7 @@ libevdev_event_value_get_name(unsigned int type,
if (type != EV_ABS || code != ABS_MT_TOOL_TYPE)
return NULL;
- if (value > MT_TOOL_MAX)
+ if (value < 0 || value > MT_TOOL_MAX)
return NULL;
return mt_tool_map[value];
diff --git a/test/test-event-names.c b/test/test-event-names.c
index c581b1d..480176c 100644
--- a/test/test-event-names.c
+++ b/test/test-event-names.c
@@ -227,6 +227,7 @@ START_TEST(test_value_name)
ck_assert_str_eq(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_PALM), "MT_TOOL_PALM");
ck_assert_str_eq(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_PEN), "MT_TOOL_PEN");
ck_assert_str_eq(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_MAX), "MT_TOOL_MAX");
+ ck_assert(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, -1) == NULL);
}
END_TEST