Skip to content

Commit 60726dc

Browse files
author
Jarkko Paso
authored
Fixed blacklisting overflow (#2597)
1 parent 23334b7 commit 60726dc

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

source/MAC/IEEE802_15_4/mac_mcps_sap.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1517,8 +1517,16 @@ static void mcps_set_packet_blacklist(protocol_interface_rf_mac_setup_s *rf_ptr,
15171517
* 80ms - 160ms after 3rd failure
15181518
* 150ms - 300ms after 4th failure
15191519
*/
1520-
uint16_t blacklist_min_ms = rf_ptr->blacklist_min_ms << (number_of_restarts - 1);
1521-
uint16_t blacklist_max_ms = blacklist_min_ms * 2;
1520+
uint8_t i = 0;
1521+
uint32_t blacklist_min_ms = 0;
1522+
while (i < number_of_restarts) {
1523+
blacklist_min_ms = rf_ptr->blacklist_min_ms << i;
1524+
if (blacklist_min_ms > (rf_ptr->blacklist_max_ms / 2)) {
1525+
break;
1526+
}
1527+
i++;
1528+
}
1529+
uint32_t blacklist_max_ms = blacklist_min_ms * 2;
15221530
if (blacklist_min_ms > (rf_ptr->blacklist_max_ms / 2)) {
15231531
blacklist_min_ms = (rf_ptr->blacklist_max_ms / 2);
15241532
}

0 commit comments

Comments
 (0)