mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 13:14:07 +08:00
6lowpan: Fix extraction of flow label field
The lowpan_fetch_skb function is used to fetch the first byte, which also increments the data pointer in skb structure, making subsequent array lookup of byte 0 actually being byte 1. To decompress the first byte of the Flow Label when the TF flag is set to 0x01, the second half of the first byte is needed. The patch fixes the extraction of the Flow Label field. Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com> Signed-off-by: Lukasz Duda <lukasz.duda@nordicsemi.no> Signed-off-by: Glenn Ruben Bakke <glenn.ruben.bakke@nordicsemi.no> Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
4863e4cc31
commit
77e867b5f1
@ -284,7 +284,7 @@ lowpan_header_decompress(struct sk_buff *skb, struct net_device *dev,
|
||||
if (lowpan_fetch_skb(skb, &tmp, sizeof(tmp)))
|
||||
return -EINVAL;
|
||||
|
||||
hdr.flow_lbl[0] = (skb->data[0] & 0x0F) | ((tmp >> 2) & 0x30);
|
||||
hdr.flow_lbl[0] = (tmp & 0x0F) | ((tmp >> 2) & 0x30);
|
||||
memcpy(&hdr.flow_lbl[1], &skb->data[0], 2);
|
||||
skb_pull(skb, 2);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user