Re: [PATCH] net: ipv4: fib_semantics: fix uninitialized variable

From: David Miller
Date: Thu Jun 06 2019 - 14:39:59 EST


From: David Ahern <dsahern@xxxxxxxxx>
Date: Thu, 6 Jun 2019 09:47:34 -0600

> On 6/6/19 8:43 AM, Enrico Weigelt, metux IT consult wrote:
>> From: Enrico Weigelt <info@xxxxxxxxx>
>>
>> fix an uninitialized variable:
>>
>> CC net/ipv4/fib_semantics.o
>> net/ipv4/fib_semantics.c: In function 'fib_check_nh_v4_gw':
>> net/ipv4/fib_semantics.c:1027:12: warning: 'err' may be used uninitialized in this function [-Wmaybe-uninitialized]
>> if (!tbl || err) {
>> ^~
>>
>> Signed-off-by: Enrico Weigelt <info@xxxxxxxxx>
>> ---
>> net/ipv4/fib_semantics.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
>> index b804106..bfa49a8 100644
>> --- a/net/ipv4/fib_semantics.c
>> +++ b/net/ipv4/fib_semantics.c
>> @@ -964,7 +964,7 @@ static int fib_check_nh_v4_gw(struct net *net, struct fib_nh *nh, u32 table,
>> {
>> struct net_device *dev;
>> struct fib_result res;
>> - int err;
>> + int err = 0;
>>
>> if (nh->fib_nh_flags & RTNH_F_ONLINK) {
>> unsigned int addr_type;
>>
>
> what compiler version?
>
> if tbl is set, then err is set.

It's unfortunate that it can't walk through that simple logic and set
of dependencies but we'll have to quiet this warning whether we like it
or not.