ipv6: exthdrs: Remove redundant skb_headlen() check in ip6_parse_tlv().
authorKuniyuki Iwashima <kuniyu@amazon.com>
Wed, 14 Jun 2023 23:01:07 +0000 (16:01 -0700)
committerJakub Kicinski <kuba@kernel.org>
Mon, 19 Jun 2023 18:32:58 +0000 (11:32 -0700)
ipv6_destopt_rcv() and ipv6_parse_hopopts() pulls these data

  - Hop-by-Hop/Destination Options Header : 8
  - Hdr Ext Len                           : skb_transport_header(skb)[1] << 3

and calls ip6_parse_tlv(), so it need not check if skb_headlen() is less
than skb_transport_offset(skb) + (skb_transport_header(skb)[1] << 3).

Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv6/exthdrs.c

index dd23531..202fc3a 100644 (file)
@@ -126,9 +126,6 @@ static bool ip6_parse_tlv(bool hopbyhop,
                max_count = -max_count;
        }
 
-       if (skb_transport_offset(skb) + len > skb_headlen(skb))
-               goto bad;
-
        off += 2;
        len -= 2;