diff --git a/net/dccp/input.c b/net/dccp/input.c index f01d588299c888ba2785dc91bf92dd3a72154ba3..c74034cf7ede15e34390531a549c4a7ce1048193 100644 --- a/net/dccp/input.c +++ b/net/dccp/input.c @@ -562,6 +562,12 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb, return 0; } + if (unlikely(dh->dccph_type == DCCP_PKT_SYNC)) { + dccp_send_sync(sk, DCCP_SKB_CB(skb)->dccpd_seq, + DCCP_PKT_SYNCACK); + goto discard; + } + switch (sk->sk_state) { case DCCP_CLOSED: return 1;