From 6404e0983fff365e789a03141538c0c126c5927b Mon Sep 17 00:00:00 2001 From: Adam Wulkiewicz Date: Tue, 5 Jul 2022 23:27:54 +0200 Subject: [PATCH] [MOS-586] Crash of simulator in Settings->Phone Modes Fix out of bounds memory access when selected phone mode is Uninitialized --- .../windows/phone-modes/PhoneModesWindow.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp b/module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp index 96f8feb6c031b68c5b04750d13fb8b24a1cd41c1..9b3bfd2587867961e451220fb527fe77413c1f31 100644 --- a/module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp +++ b/module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp @@ -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(phoneModeSettings->getCurrentPhoneMode()); modifiedModesStrings = initialModesStrings; - modifiedModesStrings[selectedPhoneModeIndex] = - "" + modifiedModesStrings[selectedPhoneModeIndex] + " "; - - refreshOptions(modesOptList(), selectedPhoneModeIndex); + if (selectedPhoneModeIndex < modifiedModesStrings.size()) { + modifiedModesStrings[selectedPhoneModeIndex] = + "" + modifiedModesStrings[selectedPhoneModeIndex] + " "; + refreshOptions(modesOptList(), selectedPhoneModeIndex); + } + else { + refreshOptions(modesOptList()); + } } auto PhoneModesWindow::modesOptList() -> std::list