~aleteoryx/muditaos

6404e0983fff365e789a03141538c0c126c5927b — Adam Wulkiewicz 3 years ago 587bc0c
[MOS-586] Crash of simulator in Settings->Phone Modes

Fix out of bounds memory access when selected phone mode is
Uninitialized
1 files changed, 9 insertions(+), 5 deletions(-)

M module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp
M module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp => module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp +9 -5
@@ 1,4 1,4 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "PhoneModesWindow.hpp"


@@ 24,10 24,14 @@ namespace gui
        auto selectedPhoneModeIndex = static_cast<unsigned int>(phoneModeSettings->getCurrentPhoneMode());

        modifiedModesStrings = initialModesStrings;
        modifiedModesStrings[selectedPhoneModeIndex] =
            "<text><b>" + modifiedModesStrings[selectedPhoneModeIndex] + " </b></text>";

        refreshOptions(modesOptList(), selectedPhoneModeIndex);
        if (selectedPhoneModeIndex < modifiedModesStrings.size()) {
            modifiedModesStrings[selectedPhoneModeIndex] =
                "<text><b>" + modifiedModesStrings[selectedPhoneModeIndex] + " </b></text>";
            refreshOptions(modesOptList(), selectedPhoneModeIndex);
        }
        else {
            refreshOptions(modesOptList());
        }
    }

    auto PhoneModesWindow::modesOptList() -> std::list<gui::Option>