• Arnd Bergmann's avatar
    firmware: tegra: fix strncpy()/strncat() confusion · 9294996f
    Arnd Bergmann authored
    The way that bpmp_populate_debugfs_inband() uses strncpy()
    and strncat() makes no sense since the size argument for
    the first is insufficient to contain the trailing '/'
    and the second passes the length of the input rather than
    the output, which triggers a warning:
    
    In function 'strncat',
        inlined from 'bpmp_populate_debugfs_inband' at ../drivers/firmware/tegra/bpmp-debugfs.c:422:4:
    include/linux/string.h:289:30: warning: '__builtin_strncat' specified bound depends on the length of the source argument [-Wstringop-overflow=]
      289 | #define __underlying_strncat __builtin_strncat
          |                              ^
    include/linux/string.h:367:10: note: in expansion of macro '__underlying_strncat'
      367 |   return __underlying_strncat(p, q, count);
          |          ^~~~~~~~~~~~~~~~~~~~
    drivers/firmware/tegra/bpmp-debugfs.c: In function 'bpmp_populate_debugfs_inband':
    include/linux/string.h:288:29: note: length computed here
      288 | #define __underlying_strlen __builtin_strlen
          |                             ^
    include/linux/string.h:321:10: note: in expansion of macro '__underlying_strlen'
      321 |   return __underlying_strlen(p);
    
    Simplify this to use an snprintf() instead.
    
    Fixes: 5e37b9c1 ("firmware: tegra: Add support for in-band debug")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Acked-by: default avatarJon Hunter <jonathanh@nvidia.com>
    Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
    9294996f
bpmp-debugfs.c 15.4 KB