From 564fae94d791a9d013edf1cbf84f97f83227c29a Mon Sep 17 00:00:00 2001 From: Alan Carvalho de Assis Date: Sun, 3 May 2026 15:57:35 -0300 Subject: [PATCH] net/sixlowpan: Fix protosize to 16-bit There was another small issue on sixlowpan_input.c code, it was processing protosize and 8-bit instead of 16-bit. It was working because the max tcp->tcpoffset was 0xf0, so protosize = ((uint16_t)tcp->tcpoffset >> 4) << 2; Will be protosize = 15 * 4 = 60 and will fit inside 8-bit. Signed-off-by: Alan C. Assis --- net/sixlowpan/sixlowpan_input.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/sixlowpan/sixlowpan_input.c b/net/sixlowpan/sixlowpan_input.c index 402587c1093..8bf1cbf9dfd 100644 --- a/net/sixlowpan/sixlowpan_input.c +++ b/net/sixlowpan/sixlowpan_input.c @@ -318,7 +318,7 @@ static int sixlowpan_frame_process(FAR struct radio_driver_s *radio, uint16_t paysize; /* Size of the data payload */ uint16_t fragtag = 0; /* Tag of the fragment */ uint8_t fragoffset = 0; /* Offset of the fragment in the IP packet */ - uint8_t protosize = 0; /* Length of the protocol header (treated like payload) */ + uint16_t protosize = 0; /* Length of the protocol header (treated like payload) */ bool isfrag = false; /* true: Frame is a fragment */ bool isfrag1 = false; /* true: Frame is the first fragment of the series */ int reqsize; /* Required buffer size */