tcp: exit if nothing to retransmit on RTO timeout

Previously TCP only warns if its RTO timer fires and the
retransmission queue is empty, but it'll cause null pointer
reference later on. It's better to avoid such catastrophic failure
and simply exit with a warning.

Signed-off-by: Yuchung Cheng <[email protected]>
Signed-off-by: Eric Dumazet <[email protected]>
Reviewed-by: Neal Cardwell <[email protected]>
Reviewed-by: Soheil Hassas Yeganeh <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
Yuchung Cheng authored and David S. Miller committed 2019-01-17 15:12:26 -08:00
1 parent 9b420eff9f
commit 88f8598d0a
1 file changed
+2 -4
+2 -4
View File
@@ -443,10 +443,8 @@ void tcp_retransmit_timer(struct sock *sk)
*/
return;
}
if (!tp->packets_out)
goto out;
WARN_ON(tcp_rtx_queue_empty(sk));
if (!tp->packets_out || WARN_ON_ONCE(tcp_rtx_queue_empty(sk)))
return;
tp->tlp_high_seq = 0;