Skip to content

Commit e76f457

Browse files
committed
Fix joystick/analog.c GCC-10 -Wrestrict warning
drivers/input/joystick/analog.c: In function 'analog_connect': drivers/input/joystick/analog.c:444:3: warning: 'snprintf' argument 4 overlaps destination object '<unknown>' [-Wrestrict] error, forbidden warning:analog.c:444 444 | snprintf(analog->name, sizeof(analog->name), "%s %d-hat", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | analog->name, hweight16(analog->mask & ANALOG_HATS_ALL)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
1 parent 6fb2704 commit e76f457

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

drivers/input/joystick/analog.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -440,9 +440,11 @@ static void analog_name(struct analog *analog)
440440
hweight8(analog->mask & ANALOG_BTNS_STD) + !!(analog->mask & ANALOG_BTNS_CHF) * 2 +
441441
hweight16(analog->mask & ANALOG_BTNS_GAMEPAD) + !!(analog->mask & ANALOG_HBTN_CHF) * 4);
442442

443-
if (analog->mask & ANALOG_HATS_ALL)
444-
snprintf(analog->name, sizeof(analog->name), "%s %d-hat",
445-
analog->name, hweight16(analog->mask & ANALOG_HATS_ALL));
443+
if (analog->mask & ANALOG_HATS_ALL) {
444+
size_t len = strnlen(analog->name, sizeof(analog->name));
445+
snprintf(analog->name + len, sizeof(analog->name) - len, " %d-hat",
446+
hweight16(analog->mask & ANALOG_HATS_ALL));
447+
}
446448

447449
if (analog->mask & ANALOG_HAT_FCS)
448450
strlcat(analog->name, " FCS", sizeof(analog->name));

0 commit comments

Comments
 (0)