aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2005-10-12 18:59:39 -0400
committerDavid S. Miller <davem@davemloft.net>2005-10-12 18:59:39 -0400
commit9ff5c59ce278c37bca22fbf98076d199bcaf9845 (patch)
treeeadd2da5cdf0cbe158c55567684385f6db86394f /net
parentafb997c6163b33292d31a09d6aa5cbb03ffa5bf1 (diff)
[TCP]: Add code to help track down "BUG at net/ipv4/tcp_output.c:438!"
This is the second report of this bug. Unfortunately the first reporter hasn't been able to reproduce it since to provide more debugging info. So let's apply this patch for 2.6.14 to 1) Make this non-fatal. 2) Provide the info we need to track it down. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/tcp_output.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 8225e4257258..f37a50e55b68 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -435,7 +435,14 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len, unsigned int mss
435 int nsize, old_factor; 435 int nsize, old_factor;
436 u16 flags; 436 u16 flags;
437 437
438 BUG_ON(len >= skb->len); 438 if (unlikely(len >= skb->len)) {
439 printk(KERN_DEBUG "TCP: seg_size=%u, mss=%u, seq=%u, "
440 "end_seq=%u, skb->len=%u.\n", len, mss_now,
441 TCP_SKB_CB(skb)->seq, TCP_SKB_CB(skb)->end_seq,
442 skb->len);
443 WARN_ON(1);
444 return 0;
445 }
439 446
440 nsize = skb_headlen(skb) - len; 447 nsize = skb_headlen(skb) - len;
441 if (nsize < 0) 448 if (nsize < 0)