Commit 55524c21 authored by Jozsef Kadlecsik's avatar Jozsef Kadlecsik

netfilter: ipset: Skip really non-first fragments for IPv6 when getting port/protocol

Signed-off-by: default avatarJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
parent d830f0fa
...@@ -116,12 +116,12 @@ ip_set_get_ip6_port(const struct sk_buff *skb, bool src, ...@@ -116,12 +116,12 @@ ip_set_get_ip6_port(const struct sk_buff *skb, bool src,
{ {
int protoff; int protoff;
u8 nexthdr; u8 nexthdr;
__be16 frag_off; __be16 frag_off = 0;
nexthdr = ipv6_hdr(skb)->nexthdr; nexthdr = ipv6_hdr(skb)->nexthdr;
protoff = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &nexthdr, protoff = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &nexthdr,
&frag_off); &frag_off);
if (protoff < 0) if (protoff < 0 || (frag_off & htons(~0x7)) != 0)
return false; return false;
return get_port(skb, nexthdr, protoff, src, port, proto); return get_port(skb, nexthdr, protoff, src, port, proto);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment