From f347611403b35959c9ab57f52a86f130c225d50f Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Mon, 23 Jan 2017 16:58:49 +0000 Subject: [PATCH] Restated text format loop to avoid out-of-bounds condition --- include/external/tbc_text_format.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/include/external/tbc_text_format.h b/include/external/tbc_text_format.h index a239b088..5209d804 100644 --- a/include/external/tbc_text_format.h +++ b/include/external/tbc_text_format.h @@ -84,8 +84,8 @@ namespace Tbc { if( itEnd != strEnd ) { bool foundWrapPoint = false; - for( iterator findIt = itEnd; !foundWrapPoint & findIt >= it; --findIt ) { - + iterator findIt = itEnd; + do { if( wrappableAfterChars.find( *findIt ) != std::string::npos && findIt != itEnd ) { itEnd = findIt+1; itNext = findIt+1; @@ -101,7 +101,13 @@ namespace Tbc { itEnd = findIt; foundWrapPoint = true; } + if( findIt == it ) + break; + else + --findIt; } + while( !foundWrapPoint ); + if( !foundWrapPoint ) { // No good wrap char, so we'll break mid word and add a hyphen --itEnd;