fix out-of-bounds read in PCDU Handler #218

Merged
meierj merged 1 commits from mueller/hotfix-pcdu-handler into develop 2022-04-21 11:21:27 +02:00

View File

@ -81,13 +81,17 @@ ReturnValue_t PCDUHandler::initialize() {
void PCDUHandler::initializeSwitchStates() { void PCDUHandler::initializeSwitchStates() {
using namespace pcdu; using namespace pcdu;
try {
for (uint8_t idx = 0; idx < NUMBER_OF_SWITCHES; idx++) { for (uint8_t idx = 0; idx < NUMBER_OF_SWITCHES; idx++) {
if (idx < PDU::CHANNELS_LEN) { if (idx < PDU::CHANNELS_LEN) {
switchStates[idx] = INIT_SWITCHES_PDU1[idx]; switchStates[idx] = INIT_SWITCHES_PDU1.at(idx);
} else { } else {
switchStates[idx] = INIT_SWITCHES_PDU2[idx]; switchStates[idx] = INIT_SWITCHES_PDU2.at(idx - PDU::CHANNELS_LEN);
} }
} }
} catch (const std::out_of_range& err) {
sif::error << "PCDUHandler::initializeSwitchStates: " << err.what() << std::endl;
}
} }
void PCDUHandler::readCommandQueue() { void PCDUHandler::readCommandQueue() {