]> git.baikalelectronics.ru Git - kernel.git/commit
xfrm: Fix local error reporting crash with interfamily tunnels
authorSteffen Klassert <steffen.klassert@secunet.com>
Mon, 12 Jan 2015 12:38:49 +0000 (13:38 +0100)
committerSteffen Klassert <steffen.klassert@secunet.com>
Mon, 9 Feb 2015 10:14:17 +0000 (11:14 +0100)
commit0a654dda80de90693c326d4bd75bc3b8df262aba
treedede82b9efbd76456e5cc88723763330f29539a5
parent5b3fc5286989cc54540de7ecb51e0f762c824928
xfrm: Fix local error reporting crash with interfamily tunnels

We set the outer mode protocol too early. As a result, the
local error handler might dispatch to the wrong address family
and report the error to a wrong socket type. We fix this by
setting the outer protocol to the skb after we accessed the
inner mode for the last time, right before we do the atcual
encapsulation where we switch finally to the outer mode.

Reported-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
Tested-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/ipv4/xfrm4_output.c
net/ipv6/xfrm6_output.c