Re: [PATCH nf-next] ipvs: fix uninitialized variable warning
From: Julian Anastasov
Date: Mon Mar 30 2020 - 03:11:42 EST
Hello,
On Mon, 30 Mar 2020, Haishuang Yan wrote:
> If outer_proto is not set, GCC warning as following:
>
> In file included from net/netfilter/ipvs/ip_vs_core.c:52:
> net/netfilter/ipvs/ip_vs_core.c: In function 'ip_vs_in_icmp':
> include/net/ip_vs.h:233:4: warning: 'outer_proto' may be used uninitialized in this function [-Wmaybe-uninitialized]
> 233 | printk(KERN_DEBUG pr_fmt(msg), ##__VA_ARGS__); \
> | ^~~~~~
> net/netfilter/ipvs/ip_vs_core.c:1666:8: note: 'outer_proto' was declared here
> 1666 | char *outer_proto;
> | ^~~~~~~~~~~
>
> Fixes: 73348fed35d0 ("ipvs: optimize tunnel dumps for icmp errors")
> Signed-off-by: Haishuang Yan <yanhaishuang@xxxxxxxxxxxxxxxxxxxx>
Acked-by: Julian Anastasov <ja@xxxxxx>
Hm, my compiler does not report it: gcc version 9.1.1
> ---
> net/netfilter/ipvs/ip_vs_core.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
> index d2ac530..aa6a603 100644
> --- a/net/netfilter/ipvs/ip_vs_core.c
> +++ b/net/netfilter/ipvs/ip_vs_core.c
> @@ -1663,7 +1663,7 @@ static int ipvs_gre_decap(struct netns_ipvs *ipvs, struct sk_buff *skb,
> unsigned int offset, offset2, ihl, verdict;
> bool tunnel, new_cp = false;
> union nf_inet_addr *raddr;
> - char *outer_proto;
> + char *outer_proto = "IPIP";
>
> *related = 1;
>
> @@ -1723,7 +1723,6 @@ static int ipvs_gre_decap(struct netns_ipvs *ipvs, struct sk_buff *skb,
> if (cih == NULL)
> return NF_ACCEPT; /* The packet looks wrong, ignore */
> tunnel = true;
> - outer_proto = "IPIP";
> } else if ((cih->protocol == IPPROTO_UDP || /* Can be UDP encap */
> cih->protocol == IPPROTO_GRE) && /* Can be GRE encap */
> /* Error for our tunnel must arrive at LOCAL_IN */
> --
> 1.8.3.1
Regards
--
Julian Anastasov <ja@xxxxxx>