[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20250720081338.7c20d793@hermes.local>
Date: Sun, 20 Jul 2025 08:13:38 -0700
From: Stephen Hemminger <stephen@...workplumber.org>
To: Anton Moryakov <ant.v.moryakov@...il.com>
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH iproute2-next] ip: ipmaddr.c: Fix possible integer
underflow in read_igmp()
On Sat, 19 Jul 2025 18:57:05 +0300
Anton Moryakov <ant.v.moryakov@...il.com> wrote:
> Static analyzer pointed out a potential error:
>
> Possible integer underflow: left operand is tainted. An integer underflow
> may occur due to arithmetic operation (unsigned subtraction) between variable
> 'len' and value '1', when 'len' is tainted { [0, 18446744073709551615] }
>
> The fix adds a check for 'len == 0' before accessing the last character of
> the name, and skips the current line in such cases to avoid the underflow.
>
> Reported-by: SVACE static analyzer
> Signed-off-by: Anton Moryakov <ant.v.moryakov@...il.com>
> ---
> ip/ipmaddr.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/ip/ipmaddr.c b/ip/ipmaddr.c
> index 2418b303..2feb916a 100644
> --- a/ip/ipmaddr.c
> +++ b/ip/ipmaddr.c
> @@ -150,6 +150,8 @@ static void read_igmp(struct ma_info **result_p)
>
> sscanf(buf, "%d%s", &m.index, m.name);
> len = strlen(m.name);
> + if(len == 0)
> + continue;
Need to follow kernel coding style, need space here.
if (len == 0)
not
if(len == 0)
Powered by blists - more mailing lists