fix overflow checks

This commit is contained in:
Sylvain Gadrat 2023-06-21 19:48:01 +02:00 committed by contact@brokestudio.fr
parent ce0e8e2e6a
commit a646ac4b73
1 changed files with 10 additions and 8 deletions

View File

@ -484,7 +484,7 @@ void BrokeStudioFirmware::processBufferedMessage() {
}
case toesp_cmds_t::SERVER_SET_SETTINGS:
UDBG("RAINBOW BrokeStudioFirmware received message SERVER_SET_SETTINGS\n");
if (message_size >= 3) {
if (message_size >= 5) {
this->server_settings_port =
(static_cast<uint16_t>(this->rx_buffer.at(2)) << 8) +
(static_cast<uint16_t>(this->rx_buffer.at(3)));
@ -514,13 +514,15 @@ void BrokeStudioFirmware::processBufferedMessage() {
}
case toesp_cmds_t::SERVER_SET_SAVED_SETTINGS: {
UDBG("RAINBOW BrokeStudioFirmware received message SERVER_SET_SAVED_SETTINGS\n");
this->default_server_settings_port =
(static_cast<uint16_t>(this->rx_buffer.at(2)) << 8) +
(static_cast<uint16_t>(this->rx_buffer.at(3)));
uint8 len = this->rx_buffer.at(4);
this->default_server_settings_address = std::string(this->rx_buffer.begin() + 5, this->rx_buffer.begin() + 5 + len);
this->server_settings_port = this->default_server_settings_port;
this->server_settings_address = default_server_settings_address;
if (message_size >= 5) {
this->default_server_settings_port =
(static_cast<uint16_t>(this->rx_buffer.at(2)) << 8) +
(static_cast<uint16_t>(this->rx_buffer.at(3)));
uint8 len = this->rx_buffer.at(4);
this->default_server_settings_address = std::string(this->rx_buffer.begin() + 5, this->rx_buffer.begin() + 5 + len);
this->server_settings_port = this->default_server_settings_port;
this->server_settings_address = default_server_settings_address;
}
break;
}
case toesp_cmds_t::SERVER_RESTORE_SAVED_SETTINGS: