net: selftests: use ethtool_sprintf()
authorJakub Kicinski <kuba@kernel.org>
Thu, 26 Oct 2023 02:29:16 +0000 (19:29 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 27 Oct 2023 15:09:26 +0000 (08:09 -0700)
During a W=1 build GCC 13.2 says:

net/core/selftests.c: In function ‘net_selftest_get_strings’:
net/core/selftests.c:404:52: error: ‘%s’ directive output may be truncated writing up to 279 bytes into a region of size 28 [-Werror=format-truncation=]
  404 |                 snprintf(p, ETH_GSTRING_LEN, "%2d. %s", i + 1,
      |                                                    ^~
net/core/selftests.c:404:17: note: ‘snprintf’ output between 5 and 284 bytes into a destination of size 32
  404 |                 snprintf(p, ETH_GSTRING_LEN, "%2d. %s", i + 1,
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  405 |                          net_selftests[i].name);
      |                          ~~~~~~~~~~~~~~~~~~~~~~

avoid it by using ethtool_sprintf().

Reviewed-by: Oleksij Rempel <o.rempel@pengutronix.de>
Tested-by: Oleksij Rempel <o.rempel@pengutronix.de>
Link: https://lore.kernel.org/r/20231026022916.566661-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/selftests.c

index acb1ee97bbd324ed223a4cd52bd9c9ccde5eaf0c..94fe3146a95969506f96366b5b8af5b79f810dcf 100644 (file)
@@ -397,14 +397,11 @@ EXPORT_SYMBOL_GPL(net_selftest_get_count);
 
 void net_selftest_get_strings(u8 *data)
 {
-       u8 *p = data;
        int i;
 
-       for (i = 0; i < net_selftest_get_count(); i++) {
-               snprintf(p, ETH_GSTRING_LEN, "%2d. %s", i + 1,
-                        net_selftests[i].name);
-               p += ETH_GSTRING_LEN;
-       }
+       for (i = 0; i < net_selftest_get_count(); i++)
+               ethtool_sprintf(&data, "%2d. %s", i + 1,
+                               net_selftests[i].name);
 }
 EXPORT_SYMBOL_GPL(net_selftest_get_strings);