mirror of
https://gitlab.freedesktop.org/libevdev/libevdev.git
synced 2025-12-25 05:50:05 +01: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,
|
||||
enum SyncState sync_state)
|
||||
{
|
||||
if (!libevdev_has_event_code(dev, ev->type, ev->code))
|
||||
return EVENT_FILTER_DISCARD;
|
||||
|
||||
if (unlikely(dev->num_slots > -1 &&
|
||||
libevdev_event_is_code(ev, EV_ABS, ABS_MT_SLOT) &&
|
||||
(ev->value < 0 || ev->value >= dev->num_slots))) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue