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]

 



Willem,

On Wed, Aug 14, 2024 at 09:53:58AM GMT, Willem de Bruijn wrote:
> 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.

BTW, we successfully cherry-picked 3 suggested[1] commits over v6.1.105 in
ALT, and there is no reported problems as of yet.

  89add40066f9 ("net: drop bad gso csum_start and offset in virtio_net_hdr")
  fc8b2a619469 ("net: more strict VIRTIO_NET_HDR_GSO_UDP_L4 validation")
  9840036786d9 ("gso: fix dodgy bit handling for GSO_UDP_L4")

[1] https://lore.kernel.org/all/2024081147-altitude-luminous-19d1@gregkh/

Thanks,

> 
> 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