Signed-off-by: Alexander Aring <alex.ar...@gmail.com>
---
 net/6lowpan/iphc.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/net/6lowpan/iphc.c b/net/6lowpan/iphc.c
index a13eae5..d2654d4 100644
--- a/net/6lowpan/iphc.c
+++ b/net/6lowpan/iphc.c
@@ -271,27 +271,31 @@ uncompress_udp_header(struct sk_buff *skb, struct udphdr 
*uh)
        if (!uh)
                goto err;
 
-       fail = lowpan_fetch_skb(skb, &tmp, 1);
+       fail = lowpan_fetch_skb(skb, &tmp, sizeof(tmp));
 
        if ((tmp & LOWPAN_NHC_UDP_MASK) == LOWPAN_NHC_UDP_ID) {
                pr_debug("UDP header uncompression\n");
                switch (tmp & LOWPAN_NHC_UDP_CS_P_11) {
                case LOWPAN_NHC_UDP_CS_P_00:
-                       fail |= lowpan_fetch_skb(skb, &uh->source, 2);
-                       fail |= lowpan_fetch_skb(skb, &uh->dest, 2);
+                       fail |= lowpan_fetch_skb(skb, &uh->source,
+                                                sizeof(uh->source));
+                       fail |= lowpan_fetch_skb(skb, &uh->dest,
+                                                sizeof(uh->dest));
                        break;
                case LOWPAN_NHC_UDP_CS_P_01:
-                       fail |= lowpan_fetch_skb(skb, &uh->source, 2);
-                       fail |= lowpan_fetch_skb(skb, &val, 1);
+                       fail |= lowpan_fetch_skb(skb, &uh->source,
+                                                sizeof(uh->source));
+                       fail |= lowpan_fetch_skb(skb, &val, sizeof(val));
                        uh->dest = htons(val + LOWPAN_NHC_UDP_8BIT_PORT);
                        break;
                case LOWPAN_NHC_UDP_CS_P_10:
-                       fail |= lowpan_fetch_skb(skb, &val, 1);
+                       fail |= lowpan_fetch_skb(skb, &val, sizeof(val));
                        uh->source = htons(val + LOWPAN_NHC_UDP_8BIT_PORT);
-                       fail |= lowpan_fetch_skb(skb, &uh->dest, 2);
+                       fail |= lowpan_fetch_skb(skb, &uh->dest,
+                                                sizeof(uh->dest));
                        break;
                case LOWPAN_NHC_UDP_CS_P_11:
-                       fail |= lowpan_fetch_skb(skb, &val, 1);
+                       fail |= lowpan_fetch_skb(skb, &val, sizeof(val));
                        uh->source = htons(LOWPAN_NHC_UDP_4BIT_PORT +
                                           (val >> 4));
                        uh->dest = htons(LOWPAN_NHC_UDP_4BIT_PORT +
@@ -311,7 +315,8 @@ uncompress_udp_header(struct sk_buff *skb, struct udphdr 
*uh)
                        pr_debug_ratelimited("checksum elided currently not 
supported\n");
                        goto err;
                } else {
-                       fail |= lowpan_fetch_skb(skb, &uh->check, 2);
+                       fail |= lowpan_fetch_skb(skb, &uh->check,
+                                                sizeof(uh->check));
                }
 
                /*
-- 
2.0.3


------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
Linux-zigbee-devel mailing list
Linux-zigbee-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel

Reply via email to