• Arnd Bergmann's avatar
    usb: typec: avoid format-overflow warning · 8160eac1
    Arnd Bergmann authored
    gcc-8 points out that the fix-byte buffer might be too small if
    desc->mode is a three-digit number:
    
    drivers/usb/typec/class.c: In function 'typec_register_altmode':
    drivers/usb/typec/class.c:502:32: error: '%d' directive writing between 1 and 3 bytes into a region of size 2 [-Werror=format-overflow=]
      sprintf(alt->group_name, "mode%d", desc->mode);
                                    ^~
    drivers/usb/typec/class.c:502:27: note: directive argument in the range [0, 255]
      sprintf(alt->group_name, "mode%d", desc->mode);
                               ^~~~~~~~
    drivers/usb/typec/class.c:502:2: note: 'sprintf' output between 6 and 8 bytes into a destination of size 6
      sprintf(alt->group_name, "mode%d", desc->mode);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    I assume this cannot happen in practice, but we can simply make the
    string long enough to avoid the warning. This uses the two padding
    bytes that already exist after the string.
    
    Fixes: 4ab8c18d ("usb: typec: Register a device for every mode")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    8160eac1
bus.h 925 Bytes