Commit 69dae0fe authored by Kees Cook's avatar Kees Cook

HID: roccat: Use struct_group() to zero kone_mouse_event

In preparation for FORTIFY_SOURCE performing compile-time and run-time
field bounds checking for memset(), avoid intentionally writing across
neighboring fields.

Add struct_group() to mark region of struct kone_mouse_event that should
be initialized to zero.

Cc: Stefan Achatz <erazor_de@users.sourceforge.net>
Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: linux-input@vger.kernel.org
Acked-by: default avatarJiri Kosina <jikos@kernel.org>
Link: https://lore.kernel.org/lkml/nycvar.YFH.7.76.2108201810560.15313@cbobk.fhfr.pmSigned-off-by: default avatarKees Cook <keescook@chromium.org>
parent 5e423a0c
...@@ -857,7 +857,7 @@ static int kone_raw_event(struct hid_device *hdev, struct hid_report *report, ...@@ -857,7 +857,7 @@ static int kone_raw_event(struct hid_device *hdev, struct hid_report *report,
memcpy(&kone->last_mouse_event, event, memcpy(&kone->last_mouse_event, event,
sizeof(struct kone_mouse_event)); sizeof(struct kone_mouse_event));
else else
memset(&event->tilt, 0, 5); memset(&event->wipe, 0, sizeof(event->wipe));
kone_keep_values_up_to_date(kone, event); kone_keep_values_up_to_date(kone, event);
......
...@@ -152,11 +152,13 @@ struct kone_mouse_event { ...@@ -152,11 +152,13 @@ struct kone_mouse_event {
uint16_t x; uint16_t x;
uint16_t y; uint16_t y;
uint8_t wheel; /* up = 1, down = -1 */ uint8_t wheel; /* up = 1, down = -1 */
struct_group(wipe,
uint8_t tilt; /* right = 1, left = -1 */ uint8_t tilt; /* right = 1, left = -1 */
uint8_t unknown; uint8_t unknown;
uint8_t event; uint8_t event;
uint8_t value; /* press = 0, release = 1 */ uint8_t value; /* press = 0, release = 1 */
uint8_t macro_key; /* 0 to 8 */ uint8_t macro_key; /* 0 to 8 */
);
} __attribute__ ((__packed__)); } __attribute__ ((__packed__));
enum kone_mouse_events { enum kone_mouse_events {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment