diff options
Diffstat (limited to 'net/dccp/ccids')
-rw-r--r-- | net/dccp/ccids/ccid3.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c index e05f4f955eee..38aa84986118 100644 --- a/net/dccp/ccids/ccid3.c +++ b/net/dccp/ccids/ccid3.c | |||
@@ -1095,6 +1095,10 @@ static void ccid3_hc_rx_get_info(struct sock *sk, struct tcp_info *info) | |||
1095 | { | 1095 | { |
1096 | const struct ccid3_hc_rx_sock *hcrx = ccid3_hc_rx_sk(sk); | 1096 | const struct ccid3_hc_rx_sock *hcrx = ccid3_hc_rx_sk(sk); |
1097 | 1097 | ||
1098 | /* Listen socks doesn't have a private CCID block */ | ||
1099 | if (sk->sk_state == DCCP_LISTEN) | ||
1100 | return; | ||
1101 | |||
1098 | BUG_ON(hcrx == NULL); | 1102 | BUG_ON(hcrx == NULL); |
1099 | 1103 | ||
1100 | info->tcpi_ca_state = hcrx->ccid3hcrx_state; | 1104 | info->tcpi_ca_state = hcrx->ccid3hcrx_state; |
@@ -1106,6 +1110,10 @@ static void ccid3_hc_tx_get_info(struct sock *sk, struct tcp_info *info) | |||
1106 | { | 1110 | { |
1107 | const struct ccid3_hc_tx_sock *hctx = ccid3_hc_tx_sk(sk); | 1111 | const struct ccid3_hc_tx_sock *hctx = ccid3_hc_tx_sk(sk); |
1108 | 1112 | ||
1113 | /* Listen socks doesn't have a private CCID block */ | ||
1114 | if (sk->sk_state == DCCP_LISTEN) | ||
1115 | return; | ||
1116 | |||
1109 | BUG_ON(hctx == NULL); | 1117 | BUG_ON(hctx == NULL); |
1110 | 1118 | ||
1111 | info->tcpi_rto = hctx->ccid3hctx_t_rto; | 1119 | info->tcpi_rto = hctx->ccid3hctx_t_rto; |