Fix #736: Check for payloads < 0 and ignore them

This commit is contained in:
Thomas Basler 2023-03-23 21:18:00 +01:00
parent d508b4183e
commit 21718a9e8f

View File

@ -197,9 +197,14 @@ void MqttHandleInverterClass::onMqttMessage(const espMqttClientTypes::MessagePro
char* strlimit = new char[len + 1];
memcpy(strlimit, payload, len);
strlimit[len] = '\0';
uint32_t payload_val = strtol(strlimit, NULL, 10);
int32_t payload_val = strtol(strlimit, NULL, 10);
delete[] strlimit;
if (payload_val < 0) {
MessageOutput.printf("MQTT payload < 0 received --> ignoring\r\n");
return;
}
if (!strcmp(setting, TOPIC_SUB_LIMIT_PERSISTENT_RELATIVE)) {
// Set inverter limit relative persistent
MessageOutput.printf("Limit Persistent: %d %%\r\n", payload_val);