Re: [PATCH net] net: drop bad gso csum_start and offset in virtio_net_hdr

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Christian Heusel wrote:
> On 24/08/14 10:10AM, Adrian Vladu wrote:
> > Hello,
> > 
> > The 6.6.y branch has the patch already in the stable queue -> https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/commit/?id=3e713b73c01fac163a5c8cb0953d1e300407a773, and it should be available in the 6.6.46 upcoming minor.
> > 
> > Thanks, Adrian.
> 
> Yeah it's also queued up for 6.10, which I both missed (sorry for that!).
> If I'm able to properly backport the patch for 6.1 I'll send that one,
> but my hopes are not too high that this will work ..

There are two conflicts.

The one in include/linux/virtio_net.h is resolved by first backporting
commit fc8b2a6194693 ("net: more strict VIRTIO_NET_HDR_GSO_UDP_L4
validation")

We did not backport that to stable because there was some slight risk
that applications might be affected. This has not surfaced.

The conflict in net/ipv4/udp_offload.c is not so easy to address.
There were lots of patches between v6.1 and linus/master, with far
fewer of these betwee v6.1 and linux-stable/linux-6.1.y.

We can also avoid the backport of fc8b2a6194693 and construct a custom
version for this older kernel. All this is needed in virtio_net.h is

+               case SKB_GSO_UDP_L4:
+               case SKB_GSO_TCPV4:
+               case SKB_GSO_TCPV6:
+                       if (skb->csum_offset != offsetof(struct tcphdr, check))

and in __udp_gso_segment

+       if (unlikely(skb_checksum_start(gso_skb) !=
+                    skb_transport_header(gso_skb)))
+               return ERR_PTR(-EINVAL);
+

The Fixes tag points to a commit introduced in 6.1. 6.6 is queued up,
so this is the only release for which we have to create a custom
patch, right?

Let me know if you will send this, or I should?





[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux