]> git.baikalelectronics.ru Git - kernel.git/commit
icmp: revise rfc4884 tests
authorWillem de Bruijn <willemb@google.com>
Fri, 24 Jul 2020 13:03:08 +0000 (09:03 -0400)
committerDavid S. Miller <davem@davemloft.net>
Sat, 25 Jul 2020 00:12:41 +0000 (17:12 -0700)
commit2225d2c22b4dd5aecd7a1234443ffe1057e9d0cf
treeb5631b1e8eb0dcd420c3facb6dfe44476d09972d
parentfaacdfb3865111d3844c57d1790445cf68acbbff
icmp: revise rfc4884 tests

1) Only accept packets with original datagram len field >= header len.

The extension header must start after the original datagram headers.
The embedded datagram len field is compared against the 128B minimum
stipulated by RFC 4884. It is unlikely that headers extend beyond
this. But as we know the exact header length, check explicitly.

2) Remove the check that datagram length must be <= 576B.

This is a send constraint. There is no value in testing this on rx.
Within private networks it may be known safe to send larger packets.
Process these packets.

This test was also too lax. It compared original datagram length
rather than entire icmp packet length. The stand-alone fix would be:

  -       if (hlen + skb->len > 576)
  +       if (-skb_network_offset(skb) + skb->len > 576)

Fixes: 0d51a0f89b19 ("icmp: support rfc 4884")
Signed-off-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/icmp.c