Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b2cc99f0 authored by Herbert Xu's avatar Herbert Xu Committed by Arnaldo Carvalho de Melo
Browse files

[TCP] Allow len == skb->len in tcp_fragment



It is legitimate to call tcp_fragment with len == skb->len since
that is done for FIN packets and the FIN flag counts as one byte.
So we should only check for the len > skb->len case.

Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@mandriva.com>
parent 49c5bfaf
Loading
Loading
Loading
Loading
+1 −11
Original line number Diff line number Diff line
@@ -435,17 +435,7 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len, unsigned int mss
	int nsize, old_factor;
	u16 flags;

	if (unlikely(len >= skb->len)) {
		if (net_ratelimit()) {
			printk(KERN_DEBUG "TCP: seg_size=%u, mss=%u, seq=%u, "
			       "end_seq=%u, skb->len=%u.\n", len, mss_now,
			       TCP_SKB_CB(skb)->seq, TCP_SKB_CB(skb)->end_seq,
			       skb->len);
			WARN_ON(1);
		}
		return 0;
	}

	BUG_ON(len > skb->len);
	nsize = skb_headlen(skb) - len;
	if (nsize < 0)
		nsize = 0;