diff mbox series

clk: si521xx: Increase stack based print buffer size in probe

Message ID 20231027085840.30098-1-marex@denx.de (mailing list archive)
State Accepted, archived
Headers show
Series clk: si521xx: Increase stack based print buffer size in probe | expand

Commit Message

Marek Vasut Oct. 27, 2023, 8:58 a.m. UTC
Increase the size of temporary print buffer on stack to fix the
following warnings reported by LKP.

Since all the input parameters of snprintf() are under control
of this driver, it is not possible to trigger and overflow here,
but since the print buffer is on stack and discarded once driver
probe() finishes, it is not an issue to increase it by 10 bytes
and fix the warning in the process. Make it so.

"
   drivers/clk/clk-si521xx.c: In function 'si521xx_probe':
>> drivers/clk/clk-si521xx.c:318:26: warning: '%d' directive output may be truncated writing between 1 and 10 bytes into a region of size 2 [-Wformat-truncation=]
      snprintf(name, 6, "DIFF%d", i);
                             ^~
   drivers/clk/clk-si521xx.c:318:21: note: directive argument in the range [0, 2147483647]
      snprintf(name, 6, "DIFF%d", i);
                        ^~~~~~~~
   drivers/clk/clk-si521xx.c:318:3: note: 'snprintf' output between 6 and 15 bytes into a destination of size 6
      snprintf(name, 6, "DIFF%d", i);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"

Fixes: edc12763a3a2 ("clk: si521xx: Clock driver for Skyworks Si521xx I2C PCIe clock generators")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202310260412.AGASjFN4-lkp@intel.com/
Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: linux-clk@vger.kernel.org
---
 drivers/clk/clk-si521xx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Stephen Boyd Oct. 27, 2023, 7:20 p.m. UTC | #1
Quoting Marek Vasut (2023-10-27 01:58:24)
> Increase the size of temporary print buffer on stack to fix the
> following warnings reported by LKP.
> 
> Since all the input parameters of snprintf() are under control
> of this driver, it is not possible to trigger and overflow here,
> but since the print buffer is on stack and discarded once driver
> probe() finishes, it is not an issue to increase it by 10 bytes
> and fix the warning in the process. Make it so.
> 
> "
>    drivers/clk/clk-si521xx.c: In function 'si521xx_probe':
> >> drivers/clk/clk-si521xx.c:318:26: warning: '%d' directive output may be truncated writing between 1 and 10 bytes into a region of size 2 [-Wformat-truncation=]
>       snprintf(name, 6, "DIFF%d", i);
>                              ^~
>    drivers/clk/clk-si521xx.c:318:21: note: directive argument in the range [0, 2147483647]
>       snprintf(name, 6, "DIFF%d", i);
>                         ^~~~~~~~
>    drivers/clk/clk-si521xx.c:318:3: note: 'snprintf' output between 6 and 15 bytes into a destination of size 6
>       snprintf(name, 6, "DIFF%d", i);
>       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> "
> 
> Fixes: edc12763a3a2 ("clk: si521xx: Clock driver for Skyworks Si521xx I2C PCIe clock generators")
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202310260412.AGASjFN4-lkp@intel.com/
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---

Applied to clk-next
diff mbox series

Patch

diff --git a/drivers/clk/clk-si521xx.c b/drivers/clk/clk-si521xx.c
index 99e6271a4de14..4f7b74f889f1e 100644
--- a/drivers/clk/clk-si521xx.c
+++ b/drivers/clk/clk-si521xx.c
@@ -282,7 +282,7 @@  static int si521xx_probe(struct i2c_client *client)
 	const u16 chip_info = (u16)(uintptr_t)i2c_get_match_data(client);
 	const struct clk_parent_data clk_parent_data = { .index = 0 };
 	const u8 data[3] = { SI521XX_REG_BC, 1, 1 };
-	unsigned char name[6] = "DIFF0";
+	unsigned char name[16] = "DIFF0";
 	struct clk_init_data init = {};
 	struct si521xx *si;
 	int i, ret;
@@ -316,7 +316,7 @@  static int si521xx_probe(struct i2c_client *client)
 	/* Register clock */
 	for (i = 0; i < hweight16(chip_info); i++) {
 		memset(&init, 0, sizeof(init));
-		snprintf(name, 6, "DIFF%d", i);
+		snprintf(name, sizeof(name), "DIFF%d", i);
 		init.name = name;
 		init.ops = &si521xx_diff_clk_ops;
 		init.parent_data = &clk_parent_data;