diff --git a/doc/changelog.txt b/doc/changelog.txt index c978450..802d9eb 100644 --- a/doc/changelog.txt +++ b/doc/changelog.txt @@ -3,6 +3,7 @@ HEAD ==== - RAWNAT: IPv6 variants erroneously rejected masks /33-/128 - new target xt_CHECKSUM +- xt_length2: add support for IPv6 jumbograms Xtables-addons 1.27 (May 16 2010) diff --git a/extensions/xt_length2.c b/extensions/xt_length2.c index 08e5519..e8c8916 100644 --- a/extensions/xt_length2.c +++ b/extensions/xt_length2.c @@ -207,7 +207,11 @@ length2_mt6(const struct sk_buff *skb, struct xt_action_param *par) bool hit = true; if (info->flags & XT_LENGTH_LAYER3) { - len = sizeof(struct ipv6hdr) + ntohs(iph->payload_len); + if (iph->payload_len == 0) + /* Jumbogram */ + len = skb->len; + else + len = sizeof(struct ipv6hdr) + ntohs(iph->payload_len); } else { l4proto = llayer4_proto(skb, &thoff, &par->hotdrop); if (l4proto == NEXTHDR_MAX)