aboutsummaryrefslogtreecommitdiff
path: root/src/renderers/renderhelpers.cpp
diff options
context:
space:
mode:
authorTomas Åkesson <tomas@entropic.se>2023-04-02 14:50:38 +0200
committerFelix Queißner <felix@ib-queissner.de>2023-04-02 18:15:30 +0200
commitd937a0c32e418414c7e9911927a1518ac586b9d4 (patch)
treeea18d71978d9f0b42774717b68608d996dec19c2 /src/renderers/renderhelpers.cpp
parenteecc1d587c5860622b97d600ace0e4456048f114 (diff)
downloadkristall-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.cpp12
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;