diff options
| author | Tomas Åkesson <tomas@entropic.se> | 2023-04-02 14:50:38 +0200 |
|---|---|---|
| committer | Felix Queißner <felix@ib-queissner.de> | 2023-04-02 18:15:30 +0200 |
| commit | d937a0c32e418414c7e9911927a1518ac586b9d4 (patch) | |
| tree | ea18d71978d9f0b42774717b68608d996dec19c2 /src/renderers/renderhelpers.cpp | |
| parent | eecc1d587c5860622b97d600ace0e4456048f114 (diff) | |
| download | kristall-d937a0c32e418414c7e9911927a1518ac586b9d4.tar.gz | |
Fix crash when encountering incomplete ANSI codes
Add bounds checking before increasing iterator pointer, to prevent
incomplete ANSI codes causing iterators going to far.
Diffstat (limited to 'src/renderers/renderhelpers.cpp')
| -rw-r--r-- | src/renderers/renderhelpers.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/renderers/renderhelpers.cpp b/src/renderers/renderhelpers.cpp index 9851c99..c9ffc7e 100644 --- a/src/renderers/renderhelpers.cpp +++ b/src/renderers/renderhelpers.cpp @@ -159,10 +159,10 @@ static void parseSGR( format.setFontStrikeOut(false); break; case SetForeground: - if (args.size() > 2) + if (args.size() > 2 && std::next(it) != args.cend()) { const auto colMode = *++it; - if (colMode == 5) + if (colMode == 5 && std::next(it) != args.cend()) { const auto colNum = *++it; setColor(format, colNum); @@ -170,7 +170,7 @@ static void parseSGR( else if (colMode == 2) { ++it; - if (args.size() >= 4) + if (std::next(it, 3) <= args.cend()) { const auto red = *it; const auto green = *++it; @@ -184,10 +184,10 @@ static void parseSGR( format.setForeground(defaultFormat.foreground()); break; case SetBackground: - if (args.size() > 2) + if (args.size() > 2 && std::next(it) != args.cend()) { const auto colMode = *++it; - if (colMode == 5) + if (colMode == 5 && std::next(it) != args.cend()) { const auto colNum = *++it; setColor(format, colNum, true); @@ -195,7 +195,7 @@ static void parseSGR( else if (colMode == 2) { ++it; - if (args.size() >= 4) + if (std::next(it, 3) <= args.cend()) { const auto red = *it; const auto green = *++it; |
