diff options
author | Alexander Aring <alex.aring@gmail.com> | 2014-06-02 07:21:58 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-06-02 13:39:42 -0400 |
commit | eb06481d69c60f6f9318e935053dce13fe3e8951 (patch) | |
tree | e4ac32d38c2a2167a838e62b2bbe75e48d510753 /net/ieee802154 | |
parent | 51263fffadee28c99152fb78a2d41e3d10c9b0b5 (diff) |
6lowpan_rtnl: fix off by one while fragmentation
This patch fix a off by one error while fragmentation. If the frag_cap
value is equal to skb_unprocessed value we need to stop the
fragmentation loop because the last fragment which has a size of
skb_unprocessed fits into the frag capability size.
This issue was introduced by commit d4b2816d67d6e07b2f27037f282d8db03a5829d7
("6lowpan: fix fragmentation").
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ieee802154')
-rw-r--r-- | net/ieee802154/6lowpan_rtnl.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ieee802154/6lowpan_rtnl.c b/net/ieee802154/6lowpan_rtnl.c index 9d57026fd9d5..fe6bd7a71081 100644 --- a/net/ieee802154/6lowpan_rtnl.c +++ b/net/ieee802154/6lowpan_rtnl.c | |||
@@ -328,7 +328,7 @@ lowpan_xmit_fragmented(struct sk_buff *skb, struct net_device *dev, | |||
328 | __func__, frag_tag, skb_offset); | 328 | __func__, frag_tag, skb_offset); |
329 | goto err; | 329 | goto err; |
330 | } | 330 | } |
331 | } while (skb_unprocessed >= frag_cap); | 331 | } while (skb_unprocessed > frag_cap); |
332 | 332 | ||
333 | consume_skb(skb); | 333 | consume_skb(skb); |
334 | return NET_XMIT_SUCCESS; | 334 | return NET_XMIT_SUCCESS; |