Skip to content

Commit d1e5ceb

Browse files
TMRh202bndy5
andauthored
Reject invalid fragmented payloads (#258)
* Reject invalid fragmented payloads * Patch readability Co-authored-by: Brendan <[email protected]>
1 parent 061b9de commit d1e5ceb

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

RF24Network.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,10 @@ uint8_t ESBNetwork<radio_t>::enqueue(RF24NetworkHeader* header)
459459
frag_queue.header.reserved = 0;
460460
return false;
461461
}
462-
if (frag_queue.header.reserved == 0 || (header->type != NETWORK_LAST_FRAGMENT && header->reserved != frag_queue.header.reserved) || frag_queue.header.id != header->id) {
462+
if (frag_queue.header.reserved == 0
463+
|| (header->type != NETWORK_LAST_FRAGMENT && header->reserved != frag_queue.header.reserved)
464+
|| frag_queue.header.id != header->id
465+
|| (header->type == NETWORK_LAST_FRAGMENT && frag_queue.header.reserved != 1)) {
463466
#if defined(RF24NETWORK_DEBUG_FRAGMENTATION) || defined(RF24NETWORK_DEBUG_MINIMAL)
464467
printf_P(PSTR("Drop frag %d Out of order\n\r"), header->reserved);
465468
#endif

0 commit comments

Comments
 (0)