netfilter: ipv6: fix crash caused by ipv6_find_hdr()
authorJP Abgrall <jpa@google.com>
Thu, 29 Sep 2011 22:36:49 +0000 (15:36 -0700)
committerJP Abgrall <jpa@google.com>
Sat, 1 Oct 2011 02:24:19 +0000 (19:24 -0700)
commit4f3824a38cc706de1b3b18ff9b83cfca0ce5f49b
tree8bfd8625230e1f7f0d880195cf22497cc8923ad8
parent5c351065923f6c954d54976839766fc60b4918f3
netfilter: ipv6: fix crash caused by ipv6_find_hdr()

When calling:
    ipv6_find_hdr(skb, &thoff, -1, NULL)
on a fragmented packet, thoff would be left with a random
value causing callers to read random memory offsets with:
    skb_header_pointer(skb, thoff, ...)

Now we force ipv6_find_hdr() to return a failure in this case.
Calling:
  ipv6_find_hdr(skb, &thoff, -1, &fragoff)
will set fragoff as expected, and not return a failure.

Change-Id: Ib474e8a4267dd2b300feca325811330329684a88
Signed-off-by: JP Abgrall <jpa@google.com>
net/ipv6/netfilter/ip6_tables.c