diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 88fa2d1606859de25419d0d45c3095f6d410d42b..d107ee246a1d32703ccc260309d52c3493927862 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -5231,7 +5231,7 @@ void tcp_rcv_established(struct sock *sk, struct sk_buff *skb, if (len < (th->doff << 2) || tcp_checksum_complete_user(sk, skb)) goto csum_error; - if (!th->ack && !th->rst) + if (!th->ack && !th->rst && !th->syn) goto discard; /* @@ -5650,7 +5650,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb, goto discard; } - if (!th->ack && !th->rst) + if (!th->ack && !th->rst && !th->syn) goto discard; if (!tcp_validate_incoming(sk, skb, th, 0))