Commit 1fd54773 authored by Andrew Melnychenko's avatar Andrew Melnychenko Committed by David S. Miller
Browse files

udp: allow header check for dodgy GSO_UDP_L4 packets.



Allow UDP_L4 for robust packets.

Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
Signed-off-by: default avatarAndrew Melnychenko <andrew@daynix.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent dd8b3a80
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -387,7 +387,8 @@ static struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb,
	if (!pskb_may_pull(skb, sizeof(struct udphdr)))
		goto out;

	if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4)
	if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4 &&
	    !skb_gso_ok(skb, features | NETIF_F_GSO_ROBUST))
		return __udp_gso_segment(skb, features, false);

	mss = skb_shinfo(skb)->gso_size;
+2 −1
Original line number Diff line number Diff line
@@ -42,7 +42,8 @@ static struct sk_buff *udp6_ufo_fragment(struct sk_buff *skb,
		if (!pskb_may_pull(skb, sizeof(struct udphdr)))
			goto out;

		if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4)
		if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4 &&
		    !skb_gso_ok(skb, features | NETIF_F_GSO_ROBUST))
			return __udp_gso_segment(skb, features, true);

		mss = skb_shinfo(skb)->gso_size;