From 709ddd2ba75dcc3cb0ed0e107f39a1bd9757c2a1 Mon Sep 17 00:00:00 2001 From: Martine Lenders Date: Fri, 23 Dec 2022 13:06:11 +0100 Subject: [PATCH] gnrc_sixlowpan_iphc: check IPHC dispatch for truncation --- .../network_layer/sixlowpan/iphc/gnrc_sixlowpan_iphc.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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 430a694ed8..29118c5cf2 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 @@ -734,6 +734,14 @@ void gnrc_sixlowpan_iphc_recv(gnrc_pktsnip_t *sixlo, void *rbuf_ptr, gnrc_sixlowpan_frag_vrb_t *vrbe = NULL; #endif /* MODULE_GNRC_SIXLOWPAN_FRAG_VRB */ + if (sixlo->size < 2U) { + DEBUG("6lo iphc: IPHC header truncated\n"); + if (rbuf != NULL) { + gnrc_sixlowpan_frag_rb_remove(rbuf); + } + gnrc_pktbuf_release(sixlo); + return; + } if (rbuf != NULL) { ipv6 = rbuf->pkt; assert(ipv6 != NULL);