mirror of
https://github.com/arendst/Tasmota.git
synced 2026-10-26 22:11:22 +00:00
Fix possible OOB
This commit is contained in:
1 parent
db29ff1f17
commit
dad74600a1
3 files changed
+19
-4
No files matched your search
@@ -135,7 +135,9 @@ void PCA9685_SetPWM(uint8_t pin, uint16_t pwm, bool inverted) {
|
||||
} else {
|
||||
PCA9685_SetPWM_Reg(pin, 0, pwm_val);
|
||||
}
|
||||
pca9685_pin_pwm_value[pin] = pwm_val;
|
||||
if (pin < 16) { // Skip 61
|
||||
pca9685_pin_pwm_value[pin] = pwm_val;
|
||||
}
|
||||
}
|
||||
|
||||
bool PCA9685_Command(void) {
|
||||
|
||||
@@ -138,11 +138,11 @@ bool NrgDummyCommand(void) {
|
||||
#ifdef ESP32
|
||||
// EnergyConfig11 to 18 = Set Energy->current[channel] in A like 0.417 for 417mA
|
||||
if ((XdrvMailbox.index > 10) && (XdrvMailbox.index < ENERGY_MAX_PHASES + 10)) {
|
||||
NrgDummy.current[XdrvMailbox.index -1] = value;
|
||||
NrgDummy.current[XdrvMailbox.index -11] = value;
|
||||
}
|
||||
// EnergyConfig111 to 118 = Set Energy->active_power[channel] in W like 100 for 100W
|
||||
if ((XdrvMailbox.index > 110) && (XdrvMailbox.index < ENERGY_MAX_PHASES +110)) {
|
||||
NrgDummy.power[XdrvMailbox.index -4] = value;
|
||||
NrgDummy.power[XdrvMailbox.index -111] = value;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -99,7 +99,14 @@ void Tsl2591Show(bool json)
|
||||
}
|
||||
|
||||
bool tsl2591CommandSensor() {
|
||||
// Sensor57 <timing>,<gain>
|
||||
// Sensor57 1..4, 1..6
|
||||
bool serviced = true;
|
||||
|
||||
if ((XdrvMailbox.payload < 1) || (XdrvMailbox.payload > 4)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
char argument[XdrvMailbox.data_len];
|
||||
long value = 0;
|
||||
|
||||
@@ -108,7 +115,13 @@ bool tsl2591CommandSensor() {
|
||||
}
|
||||
|
||||
bool any_value = (strchr(XdrvMailbox.data, ',') != nullptr);
|
||||
if (any_value) { value = strtol(ArgV(argument, 2), nullptr, 10); }
|
||||
if (any_value) {
|
||||
value = strtol(ArgV(argument, 2), nullptr, 10);
|
||||
}
|
||||
|
||||
if ((value < 1) || (value > 6)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
tsl.setGain(gain_enum_array[XdrvMailbox.payload-1]);
|
||||
tsl.setTiming(int_enum_array[value-1]);
|
||||
|
||||
Reference in new issue
Block a user