tcp: fix crash in tcp_xmit_retransmit_queue
It can happen that there are no packets in queue while calling tcp_xmit_retransmit_queue(). tcp_write_queue_head() then returns NULL and that gets deref'ed to get sacked into a local var. There is no work to do if no packets are outstanding so we just exit early. This oops was introduced by 08ebd1721ab8fd (tcp: remove tp->lost_out guard to make joining diff nicer). Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Reported-by: Lennart Schulte <lennart.schulte@nets.rwth-aachen.de> Tested-by: Lennart Schulte <lennart.schulte@nets.rwth-aachen.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b508998f66
commit
45e77d3145
@ -2208,6 +2208,9 @@ void tcp_xmit_retransmit_queue(struct sock *sk)
|
||||
int mib_idx;
|
||||
int fwd_rexmitting = 0;
|
||||
|
||||
if (!tp->packets_out)
|
||||
return;
|
||||
|
||||
if (!tp->lost_out)
|
||||
tp->retransmit_high = tp->snd_una;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user