diff --git a/sys/net/gnrc/network_layer/icmpv6/gnrc_icmpv6.c b/sys/net/gnrc/network_layer/icmpv6/gnrc_icmpv6.c index b85e7166db24b90576dba3d1574385b6db3a4286..c2d70fc0219a52caf25f66dd0677b8ca8857b028 100644 --- a/sys/net/gnrc/network_layer/icmpv6/gnrc_icmpv6.c +++ b/sys/net/gnrc/network_layer/icmpv6/gnrc_icmpv6.c @@ -42,7 +42,7 @@ static inline uint16_t _calc_csum(gnrc_pktsnip_t *hdr, uint16_t len = (uint16_t)hdr->size; while (payload && (payload != hdr)) { - csum = inet_csum(csum, payload->data, payload->size); + csum = inet_csum_slice(csum, payload->data, payload->size, len); len += (uint16_t)payload->size; payload = payload->next; } diff --git a/sys/net/gnrc/transport_layer/udp/gnrc_udp.c b/sys/net/gnrc/transport_layer/udp/gnrc_udp.c index e630d3d088a0e4393345e05bc462241f63341701..28034a53802a918ba2a3bbb4692d2cb694d5deb0 100644 --- a/sys/net/gnrc/transport_layer/udp/gnrc_udp.c +++ b/sys/net/gnrc/transport_layer/udp/gnrc_udp.c @@ -69,7 +69,7 @@ static uint16_t _calc_csum(gnrc_pktsnip_t *hdr, gnrc_pktsnip_t *pseudo_hdr, /* process the payload */ while (payload && payload != hdr) { - csum = inet_csum(csum, (uint8_t *)(payload->data), payload->size); + csum = inet_csum_slice(csum, (uint8_t *)(payload->data), payload->size, len); len += (uint16_t)payload->size; payload = payload->next; }