diff options
author | Eric Dumazet <edumazet@google.com> | 2020-05-28 23:57:47 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-05-29 01:31:30 +0200 |
commit | 7c6d2ecbda83150b2036a2b36b21381ad4667762 (patch) | |
tree | 78135e20eb93f2f4d0eb4489fc0a70d4949c7a0f /fs/fs_parser.c | |
parent | sctp: check assoc before SCTP_ADDR_{MADE_PRIM, ADDED} event (diff) | |
download | linux-7c6d2ecbda83150b2036a2b36b21381ad4667762.tar.xz linux-7c6d2ecbda83150b2036a2b36b21381ad4667762.zip |
net: be more gentle about silly gso requests coming from user
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: 6dd912f82680 ("net: check untrusted gso_size at kernel entry")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Acked-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'fs/fs_parser.c')
0 files changed, 0 insertions, 0 deletions