diff --git a/sys/net/gnrc/network_layer/ipv6/gnrc_ipv6.c b/sys/net/gnrc/network_layer/ipv6/gnrc_ipv6.c index 94dae3c23f98a0d82880c7b866b1859f0d5bdc81..07666aa2a870ba227cda0a6e9cd02e1968f13659 100644 --- a/sys/net/gnrc/network_layer/ipv6/gnrc_ipv6.c +++ b/sys/net/gnrc/network_layer/ipv6/gnrc_ipv6.c @@ -795,7 +795,7 @@ static void _receive(gnrc_pktsnip_t *pkt) /* if available, remove any padding that was added by lower layers * to fulfill their minimum size requirements (e.g. ethernet) */ - if (byteorder_ntohs(hdr->len) < pkt->size) { + if ((ipv6 != pkt) && (byteorder_ntohs(hdr->len) < pkt->size)) { gnrc_pktbuf_realloc_data(pkt, byteorder_ntohs(hdr->len)); } else if (byteorder_ntohs(hdr->len) >