lkml.org 
[lkml]   [2021]   [Aug]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH for-next 10/25] HID: roccat: Use struct_group() to zero kone_mouse_event
    Date
    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.

    Acked-by: Jiri Kosina <jikos@kernel.org>
    Link: https://lore.kernel.org/lkml/nycvar.YFH.7.76.2108201810560.15313@cbobk.fhfr.pm
    Signed-off-by: Kees Cook <keescook@chromium.org>
    ---
    drivers/hid/hid-roccat-kone.c | 2 +-
    drivers/hid/hid-roccat-kone.h | 12 +++++++-----
    2 files changed, 8 insertions(+), 6 deletions(-)

    diff --git a/drivers/hid/hid-roccat-kone.c b/drivers/hid/hid-roccat-kone.c
    index 1ca64481145e..ea17abc7ad52 100644
    --- a/drivers/hid/hid-roccat-kone.c
    +++ b/drivers/hid/hid-roccat-kone.c
    @@ -857,7 +857,7 @@ static int kone_raw_event(struct hid_device *hdev, struct hid_report *report,
    memcpy(&kone->last_mouse_event, event,
    sizeof(struct kone_mouse_event));
    else
    - memset(&event->tilt, 0, 5);
    + memset(&event->wipe, 0, sizeof(event->wipe));

    kone_keep_values_up_to_date(kone, event);

    diff --git a/drivers/hid/hid-roccat-kone.h b/drivers/hid/hid-roccat-kone.h
    index 4a1a9cb76b08..65c800e3addc 100644
    --- a/drivers/hid/hid-roccat-kone.h
    +++ b/drivers/hid/hid-roccat-kone.h
    @@ -152,11 +152,13 @@ struct kone_mouse_event {
    uint16_t x;
    uint16_t y;
    uint8_t wheel; /* up = 1, down = -1 */
    - uint8_t tilt; /* right = 1, left = -1 */
    - uint8_t unknown;
    - uint8_t event;
    - uint8_t value; /* press = 0, release = 1 */
    - uint8_t macro_key; /* 0 to 8 */
    + struct_group(wipe,
    + uint8_t tilt; /* right = 1, left = -1 */
    + uint8_t unknown;
    + uint8_t event;
    + uint8_t value; /* press = 0, release = 1 */
    + uint8_t macro_key; /* 0 to 8 */
    + );
    } __attribute__ ((__packed__));

    enum kone_mouse_events {
    --
    2.30.2
    \
     
     \ /
      Last update: 2021-08-22 09:53    [W:4.291 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site