From b4594ffe32a7ddc9971b2ce01eca7f254d23b8e5 Mon Sep 17 00:00:00 2001 From: Akshai M Date: Mon, 5 Oct 2020 18:07:51 +0530 Subject: [PATCH] gnrc/lorawan : Bug fix for zero CFList Correct check for CFlist and then conditinally process CFList. --- sys/net/gnrc/link_layer/lorawan/gnrc_lorawan_mlme.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/net/gnrc/link_layer/lorawan/gnrc_lorawan_mlme.c b/sys/net/gnrc/link_layer/lorawan/gnrc_lorawan_mlme.c index 97fa98e2ba..6252607c0b 100644 --- a/sys/net/gnrc/link_layer/lorawan/gnrc_lorawan_mlme.c +++ b/sys/net/gnrc/link_layer/lorawan/gnrc_lorawan_mlme.c @@ -103,7 +103,7 @@ void gnrc_lorawan_mlme_process_join(gnrc_lorawan_t *mac, uint8_t *data, /* Subtract 1 from join accept max size, since the MHDR was already read */ uint8_t out[GNRC_LORAWAN_JOIN_ACCEPT_MAX_SIZE - 1]; - uint8_t has_cflist = (size - 1) >= CFLIST_SIZE; + uint8_t has_cflist = (size - 1) > CFLIST_SIZE; gnrc_lorawan_decrypt_join_accept(mac->appskey, data + 1, has_cflist, out); @@ -138,7 +138,10 @@ void gnrc_lorawan_mlme_process_join(gnrc_lorawan_t *mac, uint8_t *data, /* delay 0 maps to 1 second */ mac->rx_delay = ja_hdr->rx_delay ? ja_hdr->rx_delay : 1; - gnrc_lorawan_process_cflist(mac, out + sizeof(lorawan_join_accept_t) - 1); + if (has_cflist) { + gnrc_lorawan_process_cflist(mac, out + sizeof(lorawan_join_accept_t) - 1); + } + mac->mlme.activation = MLME_ACTIVATION_OTAA; status = GNRC_LORAWAN_REQ_STATUS_SUCCESS;