2023-09-23 09:42:44

by Christophe JAILLET

[permalink] [raw]
Subject: [PATCH] leds: trigger: ledtrig-cpu:: Fix a warning when compiling with W=1

In order to teach the compiler that 'trig->name' will never be truncated,
we need to tell it that 'cpu' is not negative.

When building with W=1, this fixes the following warnings:

drivers/leds/trigger/ledtrig-cpu.c: In function ‘ledtrig_cpu_init’:
drivers/leds/trigger/ledtrig-cpu.c:155:56: error: ‘%d’ directive output may be truncated writing between 1 and 11 bytes into a region of size 5 [-Werror=format-truncation=]
155 | snprintf(trig->name, MAX_NAME_LEN, "cpu%d", cpu);
| ^~
drivers/leds/trigger/ledtrig-cpu.c:155:52: note: directive argument in the range [-2147483648, 7]
155 | snprintf(trig->name, MAX_NAME_LEN, "cpu%d", cpu);
| ^~~~~~~
drivers/leds/trigger/ledtrig-cpu.c:155:17: note: ‘snprintf’ output between 5 and 15 bytes into a destination of size 8
155 | snprintf(trig->name, MAX_NAME_LEN, "cpu%d", cpu);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fixes: 8f88731d052d ("led-triggers: create a trigger for CPU activity")
Signed-off-by: Christophe JAILLET <[email protected]>
---
drivers/leds/trigger/ledtrig-cpu.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/leds/trigger/ledtrig-cpu.c b/drivers/leds/trigger/ledtrig-cpu.c
index 8af4f9bb9cde..05848a2fecff 100644
--- a/drivers/leds/trigger/ledtrig-cpu.c
+++ b/drivers/leds/trigger/ledtrig-cpu.c
@@ -130,7 +130,7 @@ static int ledtrig_prepare_down_cpu(unsigned int cpu)

static int __init ledtrig_cpu_init(void)
{
- int cpu;
+ unsigned int cpu;
int ret;

/* Supports up to 9999 cpu cores */
@@ -152,7 +152,7 @@ static int __init ledtrig_cpu_init(void)
if (cpu >= 8)
continue;

- snprintf(trig->name, MAX_NAME_LEN, "cpu%d", cpu);
+ snprintf(trig->name, MAX_NAME_LEN, "cpu%u", cpu);

led_trigger_register_simple(trig->name, &trig->_trig);
}
--
2.34.1


2023-09-28 13:20:45

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH] leds: trigger: ledtrig-cpu:: Fix a warning when compiling with W=1

On Sat, 23 Sep 2023, Christophe JAILLET wrote:

> In order to teach the compiler that 'trig->name' will never be truncated,
> we need to tell it that 'cpu' is not negative.
>
> When building with W=1, this fixes the following warnings:
>
> drivers/leds/trigger/ledtrig-cpu.c: In function ‘ledtrig_cpu_init’:
> drivers/leds/trigger/ledtrig-cpu.c:155:56: error: ‘%d’ directive output may be truncated writing between 1 and 11 bytes into a region of size 5 [-Werror=format-truncation=]
> 155 | snprintf(trig->name, MAX_NAME_LEN, "cpu%d", cpu);
> | ^~
> drivers/leds/trigger/ledtrig-cpu.c:155:52: note: directive argument in the range [-2147483648, 7]
> 155 | snprintf(trig->name, MAX_NAME_LEN, "cpu%d", cpu);
> | ^~~~~~~
> drivers/leds/trigger/ledtrig-cpu.c:155:17: note: ‘snprintf’ output between 5 and 15 bytes into a destination of size 8
> 155 | snprintf(trig->name, MAX_NAME_LEN, "cpu%d", cpu);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Fixes: 8f88731d052d ("led-triggers: create a trigger for CPU activity")
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
> drivers/leds/trigger/ledtrig-cpu.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

I made the subject line less generic and applied it, thanks.

--
Lee Jones [李琼斯]

2023-09-28 13:24:53

by Lee Jones

[permalink] [raw]
Subject: Re: (subset) [PATCH] leds: trigger: ledtrig-cpu:: Fix a warning when compiling with W=1

On Sat, 23 Sep 2023 09:15:38 +0200, Christophe JAILLET wrote:
> In order to teach the compiler that 'trig->name' will never be truncated,
> we need to tell it that 'cpu' is not negative.
>
> When building with W=1, this fixes the following warnings:
>
> drivers/leds/trigger/ledtrig-cpu.c: In function ‘ledtrig_cpu_init’:
> drivers/leds/trigger/ledtrig-cpu.c:155:56: error: ‘%d’ directive output may be truncated writing between 1 and 11 bytes into a region of size 5 [-Werror=format-truncation=]
> 155 | snprintf(trig->name, MAX_NAME_LEN, "cpu%d", cpu);
> | ^~
> drivers/leds/trigger/ledtrig-cpu.c:155:52: note: directive argument in the range [-2147483648, 7]
> 155 | snprintf(trig->name, MAX_NAME_LEN, "cpu%d", cpu);
> | ^~~~~~~
> drivers/leds/trigger/ledtrig-cpu.c:155:17: note: ‘snprintf’ output between 5 and 15 bytes into a destination of size 8
> 155 | snprintf(trig->name, MAX_NAME_LEN, "cpu%d", cpu);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> [...]

Applied, thanks!

[1/1] leds: trigger: ledtrig-cpu:: Fix a warning when compiling with W=1
commit: 5272d74b29929c8395720a7e35971a4f0fb6783d

--
Lee Jones [李琼斯]