diff --git a/sys/net/gnrc/network_layer/sixlowpan/iphc/gnrc_sixlowpan_iphc.c b/sys/net/gnrc/network_layer/sixlowpan/iphc/gnrc_sixlowpan_iphc.c index 9b4b76f36e5a57437ecb146bffcdd38a760599ca..d1453aa0d3a34e0f9905cd2827126eeeebfbb987 100644 --- a/sys/net/gnrc/network_layer/sixlowpan/iphc/gnrc_sixlowpan_iphc.c +++ b/sys/net/gnrc/network_layer/sixlowpan/iphc/gnrc_sixlowpan_iphc.c @@ -313,11 +313,8 @@ size_t gnrc_sixlowpan_iphc_decode(gnrc_pktsnip_t *ipv6, gnrc_pktsnip_t *pkt, siz ipv6_addr_set_unspecified(&ipv6_hdr->dst); ipv6_hdr->dst.u8[0] = 0xff; ipv6_hdr->dst.u8[1] = iphc_hdr[payload_offset++]; - ipv6_hdr->dst.u8[11] = iphc_hdr[payload_offset++]; - ipv6_hdr->dst.u8[12] = iphc_hdr[payload_offset++]; - ipv6_hdr->dst.u8[13] = iphc_hdr[payload_offset++]; - ipv6_hdr->dst.u8[14] = iphc_hdr[payload_offset++]; - ipv6_hdr->dst.u8[15] = iphc_hdr[payload_offset++]; + memcpy(ipv6_hdr->dst.u8 + 11, iphc_hdr + payload_offset, 5); + payload_offset += 5; break; case IPHC_M_DAC_DAM_M_32: @@ -325,9 +322,8 @@ size_t gnrc_sixlowpan_iphc_decode(gnrc_pktsnip_t *ipv6, gnrc_pktsnip_t *pkt, siz ipv6_addr_set_unspecified(&ipv6_hdr->dst); ipv6_hdr->dst.u8[0] = 0xff; ipv6_hdr->dst.u8[1] = iphc_hdr[payload_offset++]; - ipv6_hdr->dst.u8[13] = iphc_hdr[payload_offset++]; - ipv6_hdr->dst.u8[14] = iphc_hdr[payload_offset++]; - ipv6_hdr->dst.u8[15] = iphc_hdr[payload_offset++]; + memcpy(ipv6_hdr->dst.u8 + 13, iphc_hdr + payload_offset, 3); + payload_offset += 3; break; case IPHC_M_DAC_DAM_M_8: