xfrm: reset transport header back to network header after all input transforms ahave...
authorSowmini Varadhan <sowmini.varadhan@oracle.com>
Mon, 3 Sep 2018 11:36:52 +0000 (04:36 -0700)
committerSteffen Klassert <steffen.klassert@secunet.com>
Tue, 4 Sep 2018 08:26:30 +0000 (10:26 +0200)
commitbfc0698bebcb16d19ecfc89574ad4d696955e5d3
tree0d9c1235fdf027900ee386cd2765339323d55faf
parent215ab0f021c9fea3c18b75e7d522400ee6a49990
xfrm: reset transport header back to network header after all input transforms ahave been applied

A policy may have been set up with multiple transforms (e.g., ESP
and ipcomp). In this situation, the ingress IPsec processing
iterates in xfrm_input() and applies each transform in turn,
processing the nexthdr to find any additional xfrm that may apply.

This patch resets the transport header back to network header
only after the last transformation so that subsequent xfrms
can find the correct transport header.

Fixes: 7785bba299a8 ("esp: Add a software GRO codepath")
Suggested-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/ipv4/xfrm4_input.c
net/ipv4/xfrm4_mode_transport.c
net/ipv6/xfrm6_input.c
net/ipv6/xfrm6_mode_transport.c