diff options
Diffstat (limited to 'net/dccp/proto.c')
| -rw-r--r-- | net/dccp/proto.c | 5 | 
1 files changed, 5 insertions, 0 deletions
diff --git a/net/dccp/proto.c b/net/dccp/proto.c index b68168fcc06a..9d43c1f40274 100644 --- a/net/dccp/proto.c +++ b/net/dccp/proto.c @@ -259,6 +259,7 @@ int dccp_disconnect(struct sock *sk, int flags)  {  	struct inet_connection_sock *icsk = inet_csk(sk);  	struct inet_sock *inet = inet_sk(sk); +	struct dccp_sock *dp = dccp_sk(sk);  	int err = 0;  	const int old_state = sk->sk_state; @@ -278,6 +279,10 @@ int dccp_disconnect(struct sock *sk, int flags)  		sk->sk_err = ECONNRESET;  	dccp_clear_xmit_timers(sk); +	ccid_hc_rx_delete(dp->dccps_hc_rx_ccid, sk); +	ccid_hc_tx_delete(dp->dccps_hc_tx_ccid, sk); +	dp->dccps_hc_rx_ccid = NULL; +	dp->dccps_hc_tx_ccid = NULL;  	__skb_queue_purge(&sk->sk_receive_queue);  	__skb_queue_purge(&sk->sk_write_queue);  | 
