summaryrefslogtreecommitdiff
path: root/net/ieee802154
diff options
context:
space:
mode:
authorAlexander Aring <alex.aring@gmail.com>2013-12-17 17:21:23 +0400
committerMarcel Holtmann <marcel@holtmann.org>2013-12-17 18:16:47 +0400
commit95277eb1cdd63bd45dbd5a5f1a32b9d904d5f56d (patch)
tree7673f2d430922f12b83e1ab6c1054cd09d023631 /net/ieee802154
parent5cede84c9897f9db522699c4b3ff6ffe3d11e038 (diff)
downloadlinux-95277eb1cdd63bd45dbd5a5f1a32b9d904d5f56d.tar.xz
6lowpan: fix udp compress ordering
In case ((ntohs(uh->source) & LOWPAN_NHC_UDP_8BIT_MASK) the order of uncompression is wrong. It's always first source port then destination port as second. See: http://tools.ietf.org/html/rfc6282#section-4.3.3 "Fields carried in-line (in part or in whole) appear in the same order as they do in the UDP header format" Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/ieee802154')
-rw-r--r--net/ieee802154/6lowpan_iphc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ieee802154/6lowpan_iphc.c b/net/ieee802154/6lowpan_iphc.c
index 77c0366a3b47..1933f5b06718 100644
--- a/net/ieee802154/6lowpan_iphc.c
+++ b/net/ieee802154/6lowpan_iphc.c
@@ -567,9 +567,9 @@ static void compress_udp_header(u8 **hc06_ptr, struct sk_buff *skb)
pr_debug("UDP header: remove 8 bits of source\n");
tmp = LOWPAN_NHC_UDP_CS_P_10;
lowpan_push_hc_data(hc06_ptr, &tmp, sizeof(tmp));
- lowpan_push_hc_data(hc06_ptr, &uh->dest, sizeof(uh->dest));
tmp = (u8)(uh->source - LOWPAN_NHC_UDP_8BIT_PORT);
lowpan_push_hc_data(hc06_ptr, &tmp, sizeof(tmp));
+ lowpan_push_hc_data(hc06_ptr, &uh->dest, sizeof(uh->dest));
} else {
pr_debug("UDP header: can't compress\n");
tmp = LOWPAN_NHC_UDP_CS_P_00;