2021-01-07 02:49:43

by Abaci Team

[permalink] [raw]
Subject: [PATCH] net/ipv6: warning: %u in format string (no. 2) requires 'unsigned int' but the argument type is 'signed int'.

The print format of this parameter does not match, because it is defined
as int type, so modify the matching format of this parameter to %d format.

Signed-off-by: Jiapeng Zhong <[email protected]>
Reported-by: Abaci <[email protected]>
---
net/ipv6/proc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/ipv6/proc.c b/net/ipv6/proc.c
index d6306aa..26c702b 100644
--- a/net/ipv6/proc.c
+++ b/net/ipv6/proc.c
@@ -169,7 +169,7 @@ static void snmp6_seq_show_icmpv6msg(struct seq_file *seq, atomic_long_t *smib)
val = atomic_long_read(smib + i);
if (!val)
continue;
- snprintf(name, sizeof(name), "Icmp6%sType%u",
+ snprintf(name, sizeof(name), "Icmp6%sType%d",
i & 0x100 ? "Out" : "In", i & 0xff);
seq_printf(seq, "%-32s\t%lu\n", name, val);
}
--
1.8.3.1


2021-01-09 21:02:40

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH] net/ipv6: warning: %u in format string (no. 2) requires 'unsigned int' but the argument type is 'signed int'.

On Thu, 7 Jan 2021 10:47:34 +0800 Jiapeng Zhong wrote:
> The print format of this parameter does not match, because it is defined
> as int type, so modify the matching format of this parameter to %d format.
>
> Signed-off-by: Jiapeng Zhong <[email protected]>
> Reported-by: Abaci <[email protected]>
> ---
> net/ipv6/proc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/ipv6/proc.c b/net/ipv6/proc.c
> index d6306aa..26c702b 100644
> --- a/net/ipv6/proc.c
> +++ b/net/ipv6/proc.c
> @@ -169,7 +169,7 @@ static void snmp6_seq_show_icmpv6msg(struct seq_file *seq, atomic_long_t *smib)
> val = atomic_long_read(smib + i);
> if (!val)
> continue;
> - snprintf(name, sizeof(name), "Icmp6%sType%u",
> + snprintf(name, sizeof(name), "Icmp6%sType%d",
> i & 0x100 ? "Out" : "In", i & 0xff);
> seq_printf(seq, "%-32s\t%lu\n", name, val);
> }

Type can't be negative, there is no reason for @i to be signed.
Changing type of @i sounds like a better idea.