1. 01 Jul, 2020 1 commit
    • Eric Dumazet's avatar
      net: be more gentle about silly gso requests coming from user · 6c834566
      Eric Dumazet authored
      commit 7c6d2ecb upstream.
      
      Recent change in virtio_net_hdr_to_skb() broke some packetdrill tests.
      
      When --mss=XXX option is set, packetdrill always provide gso_type & gso_size
      for its inbound packets, regardless of packet size.
      
      	if (packet->tcp && packet->mss) {
      		if (packet->ipv4)
      			gso.gso_type = VIRTIO_NET_HDR_GSO_TCPV4;
      		else
      			gso.gso_type = VIRTIO_NET_HDR_GSO_TCPV6;
      		gso.gso_size = packet->mss;
      	}
      
      Since many other programs could do the same, relax virtio_net_hdr_to_skb()
      to no longer return an error, but instead ignore gso settings.
      
      This keeps Willem intent to make sure no malicious packet could
      reach gso stack.
      
      Note that TCP stack has a special logic in tcp_set_skb_tso_segs()
      to clear gso_size for small packets.
      
      Fixes: 6dd912f8 ("net: check untrusted gso_size at kernel entry")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Acked-by: default avatarWillem de Bruijn <willemb@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6c834566
  2. 25 Jun, 2020 39 commits