mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-10-23 08:48:24 +00:00
Take patch from Debian: https://salsa.debian.org/debian/tinyxml/-/commit/38db99c12e43d7d6e349403ce4d39a706708603d Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
28 lines
924 B
Diff
28 lines
924 B
Diff
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
|
|
{
|