diff options
author | Yossi Kuperman <yossiku@mellanox.com> | 2017-08-01 12:49:06 +0300 |
---|---|---|
committer | Steffen Klassert <steffen.klassert@secunet.com> | 2017-08-02 11:00:15 +0200 |
commit | e9cba69448df7686e1c35e74be48fc715d41ac45 (patch) | |
tree | 4b3931944d089bc8c5c5f16f29a1a46c62d46048 /net/ipv6/esp6.c | |
parent | e51a64727079f46fc3a99f380de384d5ab01fffa (diff) | |
download | linux-e9cba69448df7686e1c35e74be48fc715d41ac45.tar.bz2 |
xfrm6: Fix CHECKSUM_COMPLETE after IPv6 header push
xfrm6_transport_finish rebuilds the IPv6 header based on the
original one and pushes it back without fixing skb->csum.
Therefore, CHECKSUM_COMPLETE is no longer valid and the packet
gets dropped.
Fix skb->csum by calling skb_postpush_rcsum.
Note: A valid IPv4 header has checksum 0, unlike IPv6. Thus,
the change is not needed in the sibling xfrm4_transport_finish
function.
Signed-off-by: Yossi Kuperman <yossiku@mellanox.com>
Signed-off-by: Ilan Tayari <ilant@mellanox.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Diffstat (limited to 'net/ipv6/esp6.c')
0 files changed, 0 insertions, 0 deletions