net: ipv6: send pkttoobig immediately if orig frag size > mtu
authorFlorian Westphal <fw@strlen.de>
Sun, 4 May 2014 22:03:34 +0000 (00:03 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 7 May 2014 19:27:59 +0000 (15:27 -0400)
commit418a31561d594a2b636c1e2fa94ecd9e1245abb1
tree0545fad3593e0860c9e6efd509d8b5add34e8352
parentca6c5d4ad216d5942ae544bbf02503041bd802aa
net: ipv6: send pkttoobig immediately if orig frag size > mtu

If conntrack defragments incoming ipv6 frags it stores largest original
frag size in ip6cb and sets ->local_df.

We must thus first test the largest original frag size vs. mtu, and not
vice versa.

Without this patch PKTTOOBIG is still generated in ip6_fragment() later
in the stack, but

1) IPSTATS_MIB_INTOOBIGERRORS won't increment
2) packet did (needlessly) traverse netfilter postrouting hook.

Fixes: fe6cc55f3a9 ("net: ip, ipv6: handle gso skbs in forwarding path")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ip6_output.c