ipv6: udp: fix the wrong headroom check
authorShan Wei <shanwei@cn.fujitsu.com>
Tue, 19 Apr 2011 22:52:49 +0000 (22:52 +0000)
committerSteve Conklin <sconklin@canonical.com>
Fri, 15 Jul 2011 17:20:56 +0000 (12:20 -0500)
commit5ab4f472cf2df372dfb6652c65c360e1efe7e908
treefdae18d710adc7fb5bf8069cd5e7ed7cb2f09bcf
parentd68dea42af9af2e812c6b099b3f723df3801bb5e
ipv6: udp: fix the wrong headroom check

BugLink: http://bugs.launchpad.net/bugs/793702

[ Upstream commit a9cf73ea7ff78f52662c8658d93c226effbbedde ]

At this point, skb->data points to skb_transport_header.
So, headroom check is wrong.

For some case:bridge(UFO is on) + eth device(UFO is off),
there is no enough headroom for IPv6 frag head.
But headroom check is always false.

This will bring about data be moved to there prior to skb->head,
when adding IPv6 frag header to skb.

Signed-off-by: Shan Wei <shanwei@cn.fujitsu.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
net/ipv6/udp.c