mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-01-12 03:24:08 +00:00
libtinyxml: patch CVE-2021-42260
Take patch from Debian:38db99c12eSigned-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Khem Raj <raj.khem@gmail.com> (cherry picked from commit066cf35ae5) [Fixup for styhead context] Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
committed by
Armin Kuster
parent
6fb8320d51
commit
32452210d9
@@ -0,0 +1,27 @@
|
||||
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
|
||||
{
|
||||
@@ -10,7 +10,9 @@ CVE_PRODUCT = "tinyxml"
|
||||
|
||||
SRC_URI = "${SOURCEFORGE_MIRROR}/tinyxml/tinyxml_${@'${PV}'.replace('.', '_')}.tar.gz \
|
||||
file://enforce-use-stl.patch \
|
||||
file://entity-encoding.patch"
|
||||
file://entity-encoding.patch \
|
||||
file://CVE-2021-42260.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "c1b864c96804a10526540c664ade67f0"
|
||||
SRC_URI[sha256sum] = "15bdfdcec58a7da30adc87ac2b078e4417dbe5392f3afb719f9ba6d062645593"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user