qmk/tmk_core/protocol
Stefan Kerkmann b2d068d1aa
Fix mouse-key spamming empty reports (#21663)
Problem:

`mousekey_task` spams empty hid reports with when a mouse key is
pressed, causing resource exhaustion in the USB mouse endpoint.

Cause:

The check whether or not to send a new mouse report would always
evaluate to true if a mouse key is pressed:

1. `mouse_report` has non-zero fields and `tmpmr` is a copy of this
   fields.
2. `mouse_report` is set to zero, `tmpmr` has now non-zero fields.
3. `has_mouse_report_changed` compares the two and evaluates to true
4. a mouse report is sent.

Fix:

The check condition of `has_mouse_report_changed` will evaluate any
empty record as unchanged, as mouse report data is relative and doesn't
need to return to zero. An empty report will still be send by
`register_mouse` on release of all mouse buttons.
2023-08-02 13:47:25 +02:00
..
arm_atsam quantum: remove direct quantum.h includes (#21507) 2023-07-16 23:42:56 +10:00
chibios [Bug] Fix non-functional S3 wakeup / resume from suspense (#19780) 2023-06-26 23:55:52 +02:00
lufa tmk_core: remove direct quantum.h includes (#21465) 2023-07-07 21:24:07 +10:00
usb_hid Move protocol makefiles into their respective folders (#21332) 2023-06-22 15:07:28 +01:00
vusb Update keyboard report descriptor for USB compliance (#21626) 2023-07-28 01:05:01 +01:00
host_driver.h Refactor send_extra (#18615) 2022-10-06 19:35:01 -07:00
host.c Joystick feature improvements (#19052) 2022-11-27 03:14:45 +11:00
host.h Remove IS_HOST_LED_ON and migrate usages (#19753) 2023-02-06 02:36:09 +00:00
report.c Fix mouse-key spamming empty reports (#21663) 2023-08-02 13:47:25 +02:00
report.h Move KC_MISSION_CONTROL/KC_LAUNCHPAD keycodes to core (#19884) 2023-02-19 18:59:50 +11:00
usb_descriptor_common.h Joystick feature improvements (#19052) 2022-11-27 03:14:45 +11:00
usb_descriptor.c Update keyboard report descriptor for USB compliance (#21626) 2023-07-28 01:05:01 +01:00
usb_descriptor.h Detect host OS based on USB fingerprint (#18463) 2022-12-09 03:45:30 +11:00
usb_device_state.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
usb_device_state.h Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
usb_util.c tmk_core: remove direct quantum.h includes (#21465) 2023-07-07 21:24:07 +10:00
usb_util.h tmk_core: remove direct quantum.h includes (#21465) 2023-07-07 21:24:07 +10:00