Skip to content

Commit 16c05d6

Browse files
committed
four-line-display+rotary: avoid infinite loops
changed two loop counters from byte to uint16_t, to avoid infinite loops - "i < strip.getModeCount()" will always be true when the type of i is too small.
1 parent e0c0bb5 commit 16c05d6

2 files changed

Lines changed: 3 additions & 3 deletions

File tree

usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ class FourLineDisplayUsermod : public Usermod {
158158
uint8_t knownBrightness = 0;
159159
uint8_t knownEffectSpeed = 0;
160160
uint8_t knownEffectIntensity = 0;
161-
uint8_t knownMode = 0;
161+
uint16_t knownMode = 0;
162162
uint8_t knownPalette = 0;
163163
uint8_t knownMinute = 99;
164164
uint8_t knownHour = 99;

usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ void RotaryEncoderUIUsermod::sortModesAndPalettes() {
353353

354354
byte *RotaryEncoderUIUsermod::re_initIndexArray(int numModes) {
355355
byte *indexes = (byte *)malloc(sizeof(byte) * numModes);
356-
for (byte i = 0; i < numModes; i++) {
356+
for (uint16_t i = 0; i < numModes; i++) { // WLEDMM changed to uint16_t to avoid infinite loop with 16bit mode IDs
357357
indexes[i] = i;
358358
}
359359
return indexes;
@@ -630,7 +630,7 @@ void RotaryEncoderUIUsermod::displayNetworkInfo() {
630630
void RotaryEncoderUIUsermod::findCurrentEffectAndPalette() {
631631
if (modes_alpha_indexes == nullptr) return; // WLEDMM bugfix
632632
currentEffectAndPaletteInitialized = true;
633-
for (uint8_t i = 0; i < strip.getModeCount(); i++) {
633+
for (uint16_t i = 0; i < strip.getModeCount(); i++) { // WLEDMM changed to uint16_t to avoid infinite loop with 16bit mode IDs
634634
if (modes_alpha_indexes[i] == effectCurrent) {
635635
effectCurrentIndex = i;
636636
break;

0 commit comments

Comments
 (0)