On 2/4/19 3:55 AM, Koen Vandeputte wrote:
> Hi All,
>
> During compilation of kernel 4.14.96 and 5.0-rc5 I'm seeing following
> warning:
>
> net/ipv4/fib_trie.c: In function 'fib_trie_unmerge':
> net/ipv4/fib_trie.c:1749:8: warning: 'local_tp' may be used
> uninitialized in this function [-Wmaybe-uninitialized]
> if (fib_insert_alias(lt, local_tp, local_l, new_fa,
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> NULL, l->key)) {
> ~~~~~~~~~~~~~
>
> Code:
>
> https://elixir.bootlin.com/linux/v5.0-rc5/source/net/ipv4/fib_trie.c#L1731
>
> Looks like 'local_tp' should be NULL-ified
>
>
> Thanks,
>
> Koen
>
I believe that is a false positive. If you analyze the loop, local_tp is
set when local_l is NULL and it is set before the first use. I am
surprised the compiler can not track that. fib_find_node has 1 return
point and local_tp is set right before.