diff options
Diffstat (limited to 'net/ipv4/tcp_minisocks.c')
-rw-r--r-- | net/ipv4/tcp_minisocks.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index ac6b1961ffeb..75632a925824 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c | |||
@@ -131,7 +131,7 @@ tcp_timewait_state_process(struct inet_timewait_sock *tw, struct sk_buff *skb, | |||
131 | goto kill; | 131 | goto kill; |
132 | 132 | ||
133 | if (th->syn && !before(TCP_SKB_CB(skb)->seq, tcptw->tw_rcv_nxt)) | 133 | if (th->syn && !before(TCP_SKB_CB(skb)->seq, tcptw->tw_rcv_nxt)) |
134 | goto kill_with_rst; | 134 | return TCP_TW_RST; |
135 | 135 | ||
136 | /* Dup ACK? */ | 136 | /* Dup ACK? */ |
137 | if (!th->ack || | 137 | if (!th->ack || |
@@ -145,11 +145,8 @@ tcp_timewait_state_process(struct inet_timewait_sock *tw, struct sk_buff *skb, | |||
145 | * reset. | 145 | * reset. |
146 | */ | 146 | */ |
147 | if (!th->fin || | 147 | if (!th->fin || |
148 | TCP_SKB_CB(skb)->end_seq != tcptw->tw_rcv_nxt + 1) { | 148 | TCP_SKB_CB(skb)->end_seq != tcptw->tw_rcv_nxt + 1) |
149 | kill_with_rst: | ||
150 | inet_twsk_deschedule_put(tw); | ||
151 | return TCP_TW_RST; | 149 | return TCP_TW_RST; |
152 | } | ||
153 | 150 | ||
154 | /* FIN arrived, enter true time-wait state. */ | 151 | /* FIN arrived, enter true time-wait state. */ |
155 | tw->tw_substate = TCP_TIME_WAIT; | 152 | tw->tw_substate = TCP_TIME_WAIT; |