diff options
author | David S. Miller <davem@davemloft.net> | 2015-10-22 07:46:05 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-10-22 07:46:05 -0700 |
commit | 199c6550694dcdf5f568ea9db6fe2b46d14e4fa5 (patch) | |
tree | fb5470adee1da01764c37ed0f5e9d038d60e5822 /net/ipv4 | |
parent | d46a9d678e4c9fac1e968d0593e4dba683389324 (diff) | |
parent | ca064bd89363a6e7e71b1c5226ff1b718957a9d4 (diff) | |
download | op-kernel-dev-199c6550694dcdf5f568ea9db6fe2b46d14e4fa5.zip op-kernel-dev-199c6550694dcdf5f568ea9db6fe2b46d14e4fa5.tar.gz |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec
Steffen Klassert says:
====================
pull request (net): ipsec 2015-10-22
1) Fix IPsec pre-encap fragmentation for GSO packets.
From Herbert Xu.
2) Fix some header checks in _decode_session6.
We skip the header informations if the data pointer points
already behind the header in question for some protocols.
This is because we call pskb_may_pull with a negative value
converted to unsigened int from pskb_may_pull in this case.
Skipping the header informations can lead to incorrect policy
lookups. From Mathias Krause.
3) Allow to change the replay threshold and expiry timer of a
state without having to set other attributes like replay
counter and byte lifetime. Changing these other attributes
may break the SA. From Michael Rossberg.
4) Fix pmtu discovery for local generated packets.
We may fail dispatch to the inner address family.
As a reault, the local error handler is not called
and the mtu value is not reported back to userspace.
Please pull or let me know if there are problems.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/xfrm4_output.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv4/xfrm4_output.c b/net/ipv4/xfrm4_output.c index 2878dbf..41a2613 100644 --- a/net/ipv4/xfrm4_output.c +++ b/net/ipv4/xfrm4_output.c @@ -30,6 +30,8 @@ static int xfrm4_tunnel_check_size(struct sk_buff *skb) mtu = dst_mtu(skb_dst(skb)); if (skb->len > mtu) { + skb->protocol = htons(ETH_P_IP); + if (skb->sk) xfrm_local_error(skb, mtu); else |