mirror of
https://gitlab.freedesktop.org/libevdev/libevdev.git
synced 2026-05-08 19:28:05 +02:00
Don't bother sanitizing disabled event codes
Filter them immediately instead of passing them on and relying on the actual event handling code to filter them. Reproducer: if EV_ABS is disabled on an Apple MagicMouse we still get events passed into sanitize_event(). But the code handling EV_ABS events doesn't update the state, so we end up complaining about double tracking IDs, even though that is not actually correct. https://bugzilla.redhat.com/show_bug.cgi?id=1361325 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
This commit is contained in:
parent
761687e995
commit
df5ca55609
1 changed files with 3 additions and 0 deletions
|
|
@ -979,6 +979,9 @@ sanitize_event(const struct libevdev *dev,
|
||||||
struct input_event *ev,
|
struct input_event *ev,
|
||||||
enum SyncState sync_state)
|
enum SyncState sync_state)
|
||||||
{
|
{
|
||||||
|
if (!libevdev_has_event_code(dev, ev->type, ev->code))
|
||||||
|
return EVENT_FILTER_DISCARD;
|
||||||
|
|
||||||
if (unlikely(dev->num_slots > -1 &&
|
if (unlikely(dev->num_slots > -1 &&
|
||||||
libevdev_event_is_code(ev, EV_ABS, ABS_MT_SLOT) &&
|
libevdev_event_is_code(ev, EV_ABS, ABS_MT_SLOT) &&
|
||||||
(ev->value < 0 || ev->value >= dev->num_slots))) {
|
(ev->value < 0 || ev->value >= dev->num_slots))) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue