diff options
author | Steffen Klassert <steffen.klassert@secunet.com> | 2011-06-29 23:19:32 +0000 |
---|---|---|
committer | Willy Tarreau <w@1wt.eu> | 2015-05-24 10:10:47 +0200 |
commit | 417b2efd69006e3868628e035c7d8151ea983c82 (patch) | |
tree | 4c1ac92b5b0c92a5cce32ebe15ca8ad866077954 | |
parent | a7357ca5c20572ac9609a87be884f1e87bd28185 (diff) |
ipv4: Don't use ufo handling on later transformed packets
We might call ip_ufo_append_data() for packets that will be IPsec
transformed later. This function should be used just for real
udp packets. So we check for rt->dst.header_len which is only
nonzero on IPsec handling and call ip_ufo_append_data() just
if rt->dst.header_len is zero.
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit c146066ab80267c3305de5dda6a4083f06df9265)
Signed-off-by: Willy Tarreau <w@1wt.eu>
-rw-r--r-- | net/ipv4/ip_output.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index faa662396bc8..bd5c4b388129 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c @@ -878,6 +878,7 @@ int ip_append_data(struct sock *sk, if (((length > mtu) || (skb && skb_has_frags(skb))) && (sk->sk_protocol == IPPROTO_UDP) && (rt->u.dst.dev->features & NETIF_F_UFO)) { + (rt->u.dst.dev->features & NETIF_F_UFO) && !rt->u.dst.header_len) { err = ip_ufo_append_data(sk, getfrag, from, length, hh_len, fragheaderlen, transhdrlen, mtu, flags); |