[NETFILTER]: Enable ip6t_LOG.c to work without skb_linearize()
This patch enables ip6t_LOG.c to work without skb_linearize(). I changed a large part of this file. At first, ip6_nexthdr() is deleted to prevent multiple call of skb_header_pointer() at dump_packet() and ip6_nexthdr(). And the following bugs are fixed. The first bug is fixed by introducing skb_header_pointer(), then I didn't separate patches. - No check with skb->len. Then invalid memory access may occur. - If packet is fragmented and it's not first fragment, nonexistent extension headers is tried to parse. - All headers which aren't TCP/UDP/ICMPv6 are treated as IPv6 extension header. - The encrypted data after ESP is tried to parse. - ntohl() for ID in Fragment header is missing. - If doff*4 of TCP header is less than sizeof(struct tcphdr), TCP options are tried to parse. Signed-off-by: Yasuyuki KOZAKAI <yasuyuki.kozakai@toshiba.co.jp> Signed-off-by: Patrick McHardy <kaber@trash.net>
Showing
This diff is collapsed.
Please register or sign in to comment