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)
committerDan Willemsen <dwillemsen@nvidia.com>
Thu, 1 Dec 2011 05:39:09 +0000 (21:39 -0800)
commit2eb730802be4d77ca3630fc031f28fe7e8c3be6f
tree0b7f95b43398005449c2e60cbb01baa818b0f7a6
parenta5132334a6b7258e70808acd2401d1f0efa6e33a
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