[LoRaWAN] Properly size fopts buffer
This commit is contained in:
parent
8c5ae6d266
commit
efe303ca69
1 changed files with 9 additions and 1 deletions
|
@ -1417,7 +1417,11 @@ int16_t LoRaWANNode::downlink(uint8_t* data, size_t* len, LoRaWANEvent_t* event)
|
||||||
// process FOpts (if there are any)
|
// process FOpts (if there are any)
|
||||||
if(foptsLen > 0) {
|
if(foptsLen > 0) {
|
||||||
// there are some Fopts, decrypt them
|
// there are some Fopts, decrypt them
|
||||||
uint8_t fopts[RADIOLIB_LORAWAN_FHDR_FOPTS_LEN_MASK];
|
#if !RADIOLIB_STATIC_ONLY
|
||||||
|
uint8_t* fopts = new uint8_t[RADIOLIB_MAX(RADIOLIB_LORAWAN_FHDR_FOPTS_LEN_MASK, (int)foptsLen)];
|
||||||
|
#else
|
||||||
|
uint8_t fopts[RADIOLIB_STATIC_ARRAY_SIZE];
|
||||||
|
#endif
|
||||||
|
|
||||||
// TODO it COULD be the case that the assumed FCnt rollover is incorrect, if possible figure out a way to catch this and retry with just fcnt16
|
// TODO it COULD be the case that the assumed FCnt rollover is incorrect, if possible figure out a way to catch this and retry with just fcnt16
|
||||||
// if there are <= 15 bytes of FOpts, they are in the FHDR, otherwise they are in the payload
|
// if there are <= 15 bytes of FOpts, they are in the FHDR, otherwise they are in the payload
|
||||||
|
@ -1462,6 +1466,10 @@ int16_t LoRaWANNode::downlink(uint8_t* data, size_t* len, LoRaWANEvent_t* event)
|
||||||
RADIOLIB_DEBUG_PRINTLN("Processed: %d, remaining: %d", (macLen + 1), remLen);
|
RADIOLIB_DEBUG_PRINTLN("Processed: %d, remaining: %d", (macLen + 1), remLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !RADIOLIB_STATIC_ONLY
|
||||||
|
delete[] fopts;
|
||||||
|
#endif
|
||||||
|
|
||||||
RADIOLIB_DEBUG_PRINTLN("MAC response:");
|
RADIOLIB_DEBUG_PRINTLN("MAC response:");
|
||||||
for (int i = 0; i < this->commandsUp.numCommands; i++) {
|
for (int i = 0; i < this->commandsUp.numCommands; i++) {
|
||||||
RADIOLIB_DEBUG_HEXDUMP(&(this->commandsUp.commands[i].cid), sizeof(LoRaWANMacCommand_t));
|
RADIOLIB_DEBUG_HEXDUMP(&(this->commandsUp.commands[i].cid), sizeof(LoRaWANMacCommand_t));
|
||||||
|
|
Loading…
Add table
Reference in a new issue