From 66113fe84f62bab3a672a336eb10b255d2aa5ce7 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 15 Jul 2020 13:32:40 +1000 Subject: [PATCH] libevdev: any value less than 0 has a NULL name Fixes https://gitlab.freedesktop.org/libevdev/libevdev/-/issues/15 Signed-off-by: Peter Hutterer --- libevdev/libevdev.c | 2 +- test/test-event-names.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) 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