diff options
Diffstat (limited to 'net/ipv4/tcp.c')
-rw-r--r-- | net/ipv4/tcp.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index f0b5a5999145..29b94edf05f9 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c | |||
@@ -2583,6 +2583,10 @@ int tcp_disconnect(struct sock *sk, int flags) | |||
2583 | 2583 | ||
2584 | tcp_clear_xmit_timers(sk); | 2584 | tcp_clear_xmit_timers(sk); |
2585 | __skb_queue_purge(&sk->sk_receive_queue); | 2585 | __skb_queue_purge(&sk->sk_receive_queue); |
2586 | if (sk->sk_rx_skb_cache) { | ||
2587 | __kfree_skb(sk->sk_rx_skb_cache); | ||
2588 | sk->sk_rx_skb_cache = NULL; | ||
2589 | } | ||
2586 | tp->copied_seq = tp->rcv_nxt; | 2590 | tp->copied_seq = tp->rcv_nxt; |
2587 | tp->urg_data = 0; | 2591 | tp->urg_data = 0; |
2588 | tcp_write_queue_purge(sk); | 2592 | tcp_write_queue_purge(sk); |