]> git.baikalelectronics.ru Git - kernel.git/commit
xfrm: Verify MAC header exists before overwriting eth_hdr(skb)->h_proto
authorYossi Kuperman <yossiku@mellanox.com>
Sun, 4 Mar 2018 19:03:52 +0000 (21:03 +0200)
committerSteffen Klassert <steffen.klassert@secunet.com>
Wed, 7 Mar 2018 09:54:29 +0000 (10:54 +0100)
commit0726e647ec1384d268561c44db33cbbfe3e25b94
tree24198025d23c7af2c8ad5f280304b59ec4201b64
parentf34ac8b6e270da7ef764a649c7c011674520c7c8
xfrm: Verify MAC header exists before overwriting eth_hdr(skb)->h_proto

Artem Savkov reported that commit 85410143ebad leads to a packet loss under
IPSec configuration. It appears that his setup consists of a TUN device,
which does not have a MAC header.

Make sure MAC header exists.

Note: TUN device sets a MAC header pointer, although it does not have one.

Fixes: 85410143ebad ("xfrm: Fix eth_hdr(skb)->h_proto to reflect inner IP version")
Reported-by: Artem Savkov <artem.savkov@gmail.com>
Tested-by: Artem Savkov <artem.savkov@gmail.com>
Signed-off-by: Yossi Kuperman <yossiku@mellanox.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/ipv4/xfrm4_mode_tunnel.c
net/ipv6/xfrm6_mode_tunnel.c