net: txgbe: Pass string literal as format argument of alloc_workqueue()
authorSimon Horman <horms@kernel.org>
Mon, 14 Oct 2024 08:52:26 +0000 (09:52 +0100)
committerJakub Kicinski <kuba@kernel.org>
Tue, 15 Oct 2024 17:55:09 +0000 (10:55 -0700)
Recently I noticed that both gcc-14 and clang-18 report that passing
a non-string literal as the format argument of clkdev_create()
is potentially insecure.

E.g. clang-18 says:

.../txgbe_phy.c:582:35: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  581 |         clock = clkdev_create(clk, NULL, clk_name);
      |                                          ^~~~~~~~
.../txgbe_phy.c:582:35: note: treat the string as an argument to avoid this
  581 |         clock = clkdev_create(clk, NULL, clk_name);
      |                                          ^
      |                                          "%s",

It is always the case where the contents of clk_name is safe to pass as the
format argument. That is, in my understanding, it never contains any
format escape sequences.

However, it seems better to be safe than sorry. And, as a bonus, compiler
output becomes less verbose by addressing this issue as suggested by
clang-18.

Compile tested only.

Signed-off-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20241014-string-thing-v2-2-b9b29625060a@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c

index 3dd89da..a0e4920 100644 (file)
@@ -578,7 +578,7 @@ static int txgbe_clock_register(struct txgbe *txgbe)
        if (IS_ERR(clk))
                return PTR_ERR(clk);
 
-       clock = clkdev_create(clk, NULL, clk_name);
+       clock = clkdev_create(clk, NULL, "%s", clk_name);
        if (!clock) {
                clk_unregister(clk);
                return -ENOMEM;