1
0
forked from me/IronOS

Address settings bounds checks

This commit is contained in:
Ben V. Brown
2021-11-19 19:52:14 +11:00
parent bc7d106c9f
commit b29c5a9602

View File

@@ -113,7 +113,7 @@ bool sanitiseSettings() {
} }
for (int i = 0; i < (int)SettingsOptions::SettingsOptionsLength; i++) { for (int i = 0; i < (int)SettingsOptions::SettingsOptionsLength; i++) {
// Check min max for all settings, if outside the range, move to default // Check min max for all settings, if outside the range, move to default
if (systemSettings.settingsValues[i] < settingsConstants[i].min || systemSettings.settingsValues[i] > settingsConstants[i].max) { if (systemSettings.settingsValues[i] < settingsConstants[i].min || systemSettings.settingsValues[i] >= settingsConstants[i].max) {
systemSettings.settingsValues[i] = settingsConstants[i].defaultValue; systemSettings.settingsValues[i] = settingsConstants[i].defaultValue;
dirty = true; dirty = true;
@@ -158,9 +158,8 @@ bool prevSettingValue(const enum SettingsOptions option) {
int value = systemSettings.settingsValues[(int)option]; int value = systemSettings.settingsValues[(int)option];
if (value <= constants.min) { if (value <= constants.min) {
value = constants.max; value = constants.max;
} else {
value -= constants.increment;
} }
value -= constants.increment;
systemSettings.settingsValues[(int)option] = value; systemSettings.settingsValues[(int)option] = value;
return systemSettings.settingsValues[(int)option] == constants.min; return systemSettings.settingsValues[(int)option] == constants.min;
} }