Skip to content

Commit eeaea10

Browse files
TMRh202bndy5
andcommitted
Reject invalid fragmented payloads (#258)
* Reject invalid fragmented payloads * Patch readability Co-authored-by: Brendan <2bndy5@gmail.com>
1 parent e57638e commit eeaea10

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

RF24Network.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,10 @@ uint8_t RF24Network::enqueue(RF24NetworkHeader* header)
449449
frag_queue.header.reserved = 0;
450450
return false;
451451
}
452-
if (frag_queue.header.reserved == 0 || (header->type != NETWORK_LAST_FRAGMENT && header->reserved != frag_queue.header.reserved) || frag_queue.header.id != header->id) {
452+
if (frag_queue.header.reserved == 0
453+
|| (header->type != NETWORK_LAST_FRAGMENT && header->reserved != frag_queue.header.reserved)
454+
|| frag_queue.header.id != header->id
455+
|| (header->type == NETWORK_LAST_FRAGMENT && frag_queue.header.reserved != 1)) {
453456
#if defined(RF24NETWORK_DEBUG_FRAGMENTATION) || defined(RF24NETWORK_DEBUG_MINIMAL)
454457
printf_P(PSTR("Drop frag %d Out of order\n\r"), header->reserved);
455458
#endif

0 commit comments

Comments
 (0)