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>
This commit is contained in:
Peter Hutterer 2020-07-15 13:32:40 +10:00
parent 4c1b9f3c70
commit 66113fe84f
2 changed files with 2 additions and 1 deletions

View file

@ -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];

View file

@ -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