Skip to content

Commit 810c23a

Browse files
hkchudavem330
authored andcommitted
net-ipv6: Fix alleged compiler warning in ipv6_exthdrs_len()
It was reported that Commit 299603e ("net-gro: Prepare GRO stack for the upcoming tunneling support") triggered a compiler warning in ipv6_exthdrs_len(): net/ipv6/ip6_offload.c: In function ‘ipv6_gro_complete’: net/ipv6/ip6_offload.c:178:24: warning: ‘optlen’ may be used uninitialized in this function [-Wmaybe-u opth = (void *)opth + optlen; ^ net/ipv6/ip6_offload.c:164:22: note: ‘optlen’ was declared here int len = 0, proto, optlen; ^ Note that there was no real bug here - optlen was never uninitialized before use. (Was the version of gcc I used smarter to not complain?) Reported-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: H.K. Jerry Chu <hkchu@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 7ed2a0d commit 810c23a

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

net/ipv6/ip6_offload.c

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,8 @@ static struct sk_buff *ipv6_gso_segment(struct sk_buff *skb,
160160
static int ipv6_exthdrs_len(struct ipv6hdr *iph,
161161
const struct net_offload **opps)
162162
{
163-
struct ipv6_opt_hdr *opth = NULL;
164-
int len = 0, optlen = 0, proto;
163+
struct ipv6_opt_hdr *opth = (void *)iph;
164+
int len = 0, proto, optlen = sizeof(*iph);
165165

166166
proto = iph->nexthdr;
167167
for (;;) {
@@ -172,12 +172,8 @@ static int ipv6_exthdrs_len(struct ipv6hdr *iph,
172172
if (!((*opps)->flags & INET6_PROTO_GSO_EXTHDR))
173173
break;
174174
}
175-
if (opth == NULL) {
176-
opth = (void *)(iph+1);
177-
} else {
178-
optlen = ipv6_optlen(opth);
179-
opth = (void *)opth + optlen;
180-
}
175+
opth = (void *)opth + optlen;
176+
optlen = ipv6_optlen(opth);
181177
len += optlen;
182178
proto = opth->nexthdr;
183179
}

0 commit comments

Comments
 (0)