Description: In stamp always advance the pointer if *p= 0xef
 .
 The current implementation only advanced if 0xef is followed
 by two non-zero bytes. In case of malformed input (0xef should be
 the start byte of a three byte character) this leads to an infinite
 loop. (CVE-2021-42260)
Origin: https://sourceforge.net/p/tinyxml/git/merge-requests/1/

CVE: CVE-2021-42260
Upstream-Status: Inactive-Upstream [lastrelease: 2011]
Signed-off-by: Peter Marko <peter.marko@siemens.com>

--- a/tinyxmlparser.cpp
+++ b/tinyxmlparser.cpp
@@ -274,6 +274,12 @@ void TiXmlParsingData::Stamp( const char* now, TiXmlEncoding encoding )
 						else
 							{ p +=3; ++col; }	// A normal character.
 					}
+					else
+					{
+						// TIXML_UTF_LEAD_0 (239) is the start character of a 3 byte sequence, so
+						// there is something wrong here. Just advance the pointer to evade infinite loops
+						++p;
+					}
 				}
 				else
 				{
