tcp: Fix queue traversal in tcp_use_frto().
authorDavid S. Miller <davem@davemloft.net>
Tue, 23 Sep 2008 09:51:41 +0000 (02:51 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 23 Sep 2008 09:51:41 +0000 (02:51 -0700)
We must check tcp_skb_is_last() before doing a tcp_write_queue_next().

Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_input.c

index cbfe13d5f4239f93f7e248d9602c95542c3f7754..3b76bce769dd4dd29f48e7278c90f64cd47a65a5 100644 (file)
@@ -1746,6 +1746,8 @@ int tcp_use_frto(struct sock *sk)
                return 0;
 
        skb = tcp_write_queue_head(sk);
+       if (tcp_skb_is_last(sk, skb))
+               return 1;
        skb = tcp_write_queue_next(sk, skb);    /* Skips head */
        tcp_for_write_queue_from(skb, sk) {
                if (skb == tcp_send_head(sk))