Skip to content

Commit 1fd5477

Browse files
AndrewAtDaynixdavem330
authored andcommitted
udp: allow header check for dodgy GSO_UDP_L4 packets.
Allow UDP_L4 for robust packets. Signed-off-by: Jason Wang <[email protected]> Signed-off-by: Andrew Melnychenko <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent dd8b3a8 commit 1fd5477

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

net/ipv4/udp_offload.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,8 @@ static struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb,
387387
if (!pskb_may_pull(skb, sizeof(struct udphdr)))
388388
goto out;
389389

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

393394
mss = skb_shinfo(skb)->gso_size;

net/ipv6/udp_offload.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ static struct sk_buff *udp6_ufo_fragment(struct sk_buff *skb,
4242
if (!pskb_may_pull(skb, sizeof(struct udphdr)))
4343
goto out;
4444

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

4849
mss = skb_shinfo(skb)->gso_size;

0 commit comments

Comments
 (0)