|
@@ -1009,6 +1009,10 @@ void dccp_close(struct sock *sk, long timeout)
|
|
__kfree_skb(skb);
|
|
__kfree_skb(skb);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /* If socket has been already reset kill it. */
|
|
|
|
+ if (sk->sk_state == DCCP_CLOSED)
|
|
|
|
+ goto adjudge_to_death;
|
|
|
|
+
|
|
if (data_was_unread) {
|
|
if (data_was_unread) {
|
|
/* Unread data was tossed, send an appropriate Reset Code */
|
|
/* Unread data was tossed, send an appropriate Reset Code */
|
|
DCCP_WARN("ABORT with %u bytes unread\n", data_was_unread);
|
|
DCCP_WARN("ABORT with %u bytes unread\n", data_was_unread);
|