[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1371478739.10495.5.camel@chenjun-workstation>
Date: Mon, 17 Jun 2013 10:18:59 -0400
From: Jun Chen <jun.d.chen@...el.com>
To: ycheng@...gle.com, ncardwell@...gle.com
Cc: edumazet@...gle.com, netdev@...r.kernel.org,
Linux Kernel <linux-kernel@...r.kernel.org>,
Jun Chen <jun.d.chen@...el.com>
Subject: [PATCH] tcp: Modify the condition for the first skb to collapse
When search the first skb to collapse,the condition of overlap to the next one have been
reached,but the start is less than TCP_SKB_CB(skb)->seq at this time, then followed process
will trigger the BUG_ON of the offset(start - TCP_SKB_CB(skb)->seq).
So this patch add one check (! before(start,TCP_SKB_CB(skb)->seq)) to avoid this ipanic.
Signed-off-by: Chen Jun <jun.d.chen@...el.com>
---
net/ipv4/tcp_input.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 9c62257..4c745c5 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -4465,7 +4465,8 @@ restart:
* overlaps to the next one.
*/
if (!tcp_hdr(skb)->syn && !tcp_hdr(skb)->fin &&
- (tcp_win_from_space(skb->truesize) > skb->len ||
+ ((tcp_win_from_space(skb->truesize) > skb->len &&
+ !before(start, TCP_SKB_CB(skb)->seq)) ||
before(TCP_SKB_CB(skb)->seq, start))) {
end_of_skbs = false;
break;
--
1.7.4.1
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists