]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ipv6: fix incorrent ipv6 ipsec packet fragment
authorGao feng <gaofeng@cn.fujitsu.com>
Mon, 19 Mar 2012 22:36:10 +0000 (22:36 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Apr 2012 17:32:22 +0000 (10:32 -0700)
commit1545fb60f0c05b65060913e78bf8ae2b3c629818
tree6a365a885032c750049e2bef64a95741ab2fd1fe
parentb8828d5eb9f31e40359e7c9d7998e54e6bd2fac1
ipv6: fix incorrent ipv6 ipsec packet fragment

[ Upstream commit 1f85851e17b64cabd089a8a8839dddebc627948c ]

Since commit 299b0767(ipv6: Fix IPsec slowpath fragmentation problem)
In func ip6_append_data,after call skb_put(skb, fraglen + dst_exthdrlen)
the skb->len contains dst_exthdrlen,and we don't reduce dst_exthdrlen at last
This will make fraggap>0 in next "while cycle",and cause the size of skb incorrent

Fix this by reserve headroom for dst_exthdrlen.

Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Acked-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv6/ip6_output.c