fix: Potential out of bounds access of flightmode name on main screen (#1337)

Take 2, without the Mac Companion breakage...

* fixed incorrect use of non-terminated-fixed-string for ctor of std::string

* introduced helper

* removed commented lines

* removed constexpr since in C++11 std::string ctro isn't still constexpr

Co-authored-by: wimalopaan <wilhelm.wm.meier@googlemail.com>
This commit is contained in:
Peter Feerick
2022-01-21 19:53:45 +10:00
committed by GitHub
co-authored by wimalopaan
parent 0adb6315c8
commit 121a1ffee5
2 changed files with 8 additions and 2 deletions
@@ -328,8 +328,8 @@ void ViewMainDecoration::createFlightMode()
};
std::function<std::string()> getFM = []() -> std::string {
return g_model.flightModeData[mixerCurrentFlightMode].name;
};
return stringFromNtString(g_model.flightModeData[mixerCurrentFlightMode].name);
};
flightMode = new DynamicText(this, r, getFM, CENTERED | COLOR_THEME_SECONDARY1);
}
+6
View File
@@ -25,6 +25,8 @@
#include "definitions.h"
#include "opentx_types.h"
#include <string>
#define SHOW_TIME 0x1
#define SHOW_TIMER 0x0
#define SHOW_TIMER_UPPER_CASE 0x2
@@ -90,4 +92,8 @@ char *getTimerString(int32_t tme, TimerOptions timerOptions = {.options = 0});
void splitTimer(char *s0, char *s1, char *s2, char *s3, int tme,
bool bLowercase = true);
template<size_t N>
std::string stringFromNtString(const char (&a)[N]) {
return std::string(a, strnlen(a, N));
}
#endif // _STRHELPERS_H_