• Eric Dumazet's avatar
    tcp: remove redundant checks · 12e25e10
    Eric Dumazet authored
    tcp_v4_rcv() checks the following before calling tcp_v4_do_rcv():
    
    if (th->doff < sizeof(struct tcphdr) / 4)
        goto bad_packet;
    if (!pskb_may_pull(skb, th->doff * 4))
        goto discard_it;
    
    So following check in tcp_v4_do_rcv() is redundant
    and "goto csum_err;" is wrong anyway.
    
    if (skb->len < tcp_hdrlen(skb) || ...)
    	goto csum_err;
    
    A second check can be removed after no_tcp_socket label for same reason.
    
    Same tests can be removed in tcp_v6_do_rcv()
    
    Note : short tcp frames are not properly accounted in tcpInErrs MIB,
    because pskb_may_pull() failure simply drops incoming skb, we might
    fix this in a separate patch.
    Signed-off-by: default avatarEric Dumazet  <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    12e25e10
tcp_ipv6.c 49.4 KB