From c2f29b8849d4eb30a65008ba1c208cad909310e9 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 12 Dec 2021 09:42:45 +0100 Subject: [PATCH] - fixed OOB write in section splitting code. --- source/core/rendering/hw_sections.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/source/core/rendering/hw_sections.cpp b/source/core/rendering/hw_sections.cpp index e44512fe1..45921bb07 100644 --- a/source/core/rendering/hw_sections.cpp +++ b/source/core/rendering/hw_sections.cpp @@ -140,9 +140,12 @@ static void SplitSection(int section, int start, int end) assert(newline.point2index >= 0); // relink the partner - auto& partnerline = sectionLines[newline.partner]; - partnerline.partner = thisline; - partnerline.partnersection = newline.section; + if (newline.partner >= 0) + { + auto& partnerline = sectionLines[newline.partner]; + partnerline.partner = thisline; + partnerline.partnersection = newline.section; + } thisline++; } else @@ -172,9 +175,12 @@ static void SplitSection(int section, int start, int end) assert(newline.point2index >= 0); // relink the partner - auto& partnerline = sectionLines[newline.partner]; - partnerline.partner = thisline; - partnerline.partnersection = newline.section; + if (newline.partner >= 0) + { + auto& partnerline = sectionLines[newline.partner]; + partnerline.partner = thisline; + partnerline.partnersection = newline.section; + } thisline++; } else