LVS
lvs-devel
Google
 
Web LinuxVirtualServer.org

[PATCH linux-next] ipvs: ip_vs_fill_iph_skb: Silence warning that 'iph.t

To: linux-kernel@xxxxxxxxxxxxxxx
Subject: [PATCH linux-next] ipvs: ip_vs_fill_iph_skb: Silence warning that 'iph.thoff_reasm' may be used uninitialized
Cc: Tim Gardner <tim.gardner@xxxxxxxxxxxxx>, Wensong Zhang <wensong@xxxxxxxxxxxx>, Simon Horman <horms@xxxxxxxxxxxx>, Julian Anastasov <ja@xxxxxx>, "David S. Miller" <davem@xxxxxxxxxxxxx>, Alexey Kuznetsov <kuznet@xxxxxxxxxxxxx>, James Morris <jmorris@xxxxxxxxx>, Hideaki YOSHIFUJI <yoshfuji@xxxxxxxxxxxxxx>, Patrick McHardy <kaber@xxxxxxxxx>, netdev@xxxxxxxxxxxxxxx, lvs-devel@xxxxxxxxxxxxxxx
From: Tim Gardner <tim.gardner@xxxxxxxxxxxxx>
Date: Sun, 10 Mar 2013 09:09:05 -0600
If CONFIG_IP_VS_IPV6 is not defined, then ip_vs_fill_iph_skb() does not
initialize all of the fields in struct ip_vs_iphdr. Silence the 'may be used
uninitialized' warning in the IPV4 only case by initializing the only field
that is unique to IPV6.

net/netfilter/ipvs/ip_vs_pe_sip.c: In function 'ip_vs_sip_fill_param':
net/netfilter/ipvs/ip_vs_pe_sip.c:87:11: warning: 'iph.thoff_reasm' may be used 
uninitialized in this function [-Wuninitialized]

gcc version 4.6.3

Also update comment to correctly reference fragoffs.

Cc: Wensong Zhang <wensong@xxxxxxxxxxxx>
Cc: Simon Horman <horms@xxxxxxxxxxxx>
Cc: Julian Anastasov <ja@xxxxxx>
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
Cc: Alexey Kuznetsov <kuznet@xxxxxxxxxxxxx>
Cc: James Morris <jmorris@xxxxxxxxx>
Cc: Hideaki YOSHIFUJI <yoshfuji@xxxxxxxxxxxxxx>
Cc: Patrick McHardy <kaber@xxxxxxxxx>
Cc: netdev@xxxxxxxxxxxxxxx
Cc: lvs-devel@xxxxxxxxxxxxxxx
Signed-off-by: Tim Gardner <tim.gardner@xxxxxxxxxxxxx>
---
 include/net/ip_vs.h |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
index 108ebe8..64ca32f 100644
--- a/include/net/ip_vs.h
+++ b/include/net/ip_vs.h
@@ -165,14 +165,16 @@ ip_vs_fill_ip4hdr(const void *nh, struct ip_vs_iphdr 
*iphdr)
 static inline void
 ip_vs_fill_iph_skb(int af, const struct sk_buff *skb, struct ip_vs_iphdr 
*iphdr)
 {
+       /* May not get initialized in all cases */
+       iphdr->thoff_reasm = 0;
+
 #ifdef CONFIG_IP_VS_IPV6
        if (af == AF_INET6) {
                const struct ipv6hdr *iph =
                        (struct ipv6hdr *)skb_network_header(skb);
                iphdr->saddr.in6 = iph->saddr;
                iphdr->daddr.in6 = iph->daddr;
-               /* ipv6_find_hdr() updates len, flags, thoff_reasm */
-               iphdr->thoff_reasm = 0;
+               /* ipv6_find_hdr() updates len, flags, and fragoffs */
                iphdr->len       = 0;
                iphdr->flags     = 0;
                iphdr->protocol  = ipv6_find_hdr(skb, &iphdr->len, -1,
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH linux-next] ipvs: ip_vs_fill_iph_skb: Silence warning that 'iph.thoff_reasm' may be used uninitialized, Tim Gardner <=