diff options
author | alex.bluesman.smirnov@gmail.com <alex.bluesman.smirnov@gmail.com> | 2012-07-10 17:22:47 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-12 10:54:45 -0400 |
commit | abbee2effcbce55440accb0a1dd315562875efa2 (patch) | |
tree | bde2b4f68318aa1624757e10a548d3f33518bc46 /net/ieee802154 | |
parent | 428840424fc54dd2d3f67d3de8b78bb71a479537 (diff) |
6lowpan: fix tag variable size
Function lowpan_alloc_new_frame() takes u8 tag as an argument. However,
its only caller, lowpan_process_data() passes down a u16. Hence,
the tag value can get corrupted. This prevent 6lowpan fragment reassembly of a
message when the fragment tag value is over 256.
Signed-off-by: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
Cc: Tony Cheneau <tony.cheneau@amnesiak.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ieee802154')
-rw-r--r-- | net/ieee802154/6lowpan.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c index ae3f4eb02064..2e790fbe848d 100644 --- a/net/ieee802154/6lowpan.c +++ b/net/ieee802154/6lowpan.c | |||
@@ -646,7 +646,7 @@ static void lowpan_fragment_timer_expired(unsigned long entry_addr) | |||
646 | } | 646 | } |
647 | 647 | ||
648 | static struct lowpan_fragment * | 648 | static struct lowpan_fragment * |
649 | lowpan_alloc_new_frame(struct sk_buff *skb, u8 iphc0, u8 len, u8 tag) | 649 | lowpan_alloc_new_frame(struct sk_buff *skb, u8 iphc0, u8 len, u16 tag) |
650 | { | 650 | { |
651 | struct lowpan_fragment *frame; | 651 | struct lowpan_fragment *frame; |
652 | 652 | ||