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