summaryrefslogtreecommitdiff
path: root/dev-libs/tinyxml
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/tinyxml')
-rw-r--r--dev-libs/tinyxml/Manifest2
-rw-r--r--dev-libs/tinyxml/files/tinyxml-2.6.2-CVE-2021-42260.patch23
-rw-r--r--dev-libs/tinyxml/tinyxml-2.6.2-r5.ebuild68
3 files changed, 93 insertions, 0 deletions
diff --git a/dev-libs/tinyxml/Manifest b/dev-libs/tinyxml/Manifest
index 21a8dfca9b24..25ec2428ca3b 100644
--- a/dev-libs/tinyxml/Manifest
+++ b/dev-libs/tinyxml/Manifest
@@ -1,7 +1,9 @@
AUX Makefile-3 1054 BLAKE2B 30f94d5ec66a4ab11703c53caccec0ac34a034686dddab9595d9ca2892fbf68b603035f6b80c1d47219c7ca6aeff43830a4096ec1d36fc8d00c19468cf59c1a6 SHA512 81b05e25341095444d0112fe58840d334a14f754cdc0e907b468484655008de026a4b96947de98d009a4a54d84af121ee0a663075fe0ad727894d3aa432426e2
AUX tinyxml-2.6.1-entity.patch 1776 BLAKE2B e8430b2fea965f351c12a0413c3bba43ce19da7e8a0973fae3c7db4b4a8978cbc8b74beb495dd9141e79e90f9ad012b6b5e738207f8075ad7001cb85b424f5be SHA512 e03f4bdfb80354c6d262abb40e6c105cb2d37530e2f1f1d865ff4fd8434320a26957fbc2379db8af1bd18cd3c8662e064e79525831a5fb9fcb4aff46f3eb0809
+AUX tinyxml-2.6.2-CVE-2021-42260.patch 795 BLAKE2B fd73783db5955da369991920b20685457eabff753bf34c342b7de8be1551cf800d36373ac68aa88f566340553b7bac0073b61d5cea70d98c9fe3a4cfe930b310 SHA512 d538d6a811dd9c576122ce2fd304404c4dec95212b423487b9734108e7538e584bea26335d25acc8e4a096602a06af3aae48e317fcf2f2f9975bc96fac85084f
AUX tinyxml-2.6.2-defineSTL.patch 353 BLAKE2B e9a3d63283f7946e04dafa58a7eeda782b02d6d6093bae18fdec727b9e6c6722a4c610230cc43ea8142695f3a0aaa1e9bf11a8f0072ad580acb5428655a3d6e8 SHA512 52cd82ef9e8f1783b3d6042551342a8c592c447e1da352d5d017db4211144bc0a908ddbfe2a4641b3108fb8e02dc47f385a851f920532d94178314255904a6ef
AUX tinyxml.pc.patch 383 BLAKE2B 7f13d388d80605a9576ca6c6dca263d9d1afe87026801f4a5d1db9b341b8bc763c66dfdfef924ce388b30fc453b143f01019ba676f66805fb11270c54d19ecfb SHA512 e423baf55f488fe4788234b8b19819520db3f9a43e677c34dd0bb9250c187c349b796a5c2749b5bee35d468b8676ccc8db7eab8a1094c36f65f63e128572b860
DIST tinyxml_2_6_2.tar.gz 210124 BLAKE2B 84d4ad0174eb38583a4488523410105928b9797f09a2ef84b41156580a40cc11d1d09e28e67512494bd02d7a7e0b208aa6c1ce3383bec12de606491214c16a77 SHA512 133b5db06131a90ad0c2b39b0063f1c8e65e67288a7e5d67e1f7d9ba32af10dc5dfa0462f9723985ee27debe8f09a10a25d4b5a5aaff2ede979b1cebe8e59d56
EBUILD tinyxml-2.6.2-r4.ebuild 1562 BLAKE2B da540b4a34aceadf5d7d6cfd465d1b4902863cfc1337793b3fbb0eb0b35d78f51a64bef8d724b14661416d21017fe0702e2821f3f086fc608b7e4e5a74189e7d SHA512 7f3bf0d6033a5950ba5085ec2c292b70eda2050e632c4d0fd2fac51a1f1271fe787a99a5b304a3f657afa2890a34152cba0cf6dce773546e64b2097ac97adcc3
+EBUILD tinyxml-2.6.2-r5.ebuild 1614 BLAKE2B 9816e8eb0bb8950d5e04e2d174c69b4a3d126735e4f17b9aaccd7adf6937f379331b560b0bd603c967faa092e5be94ee781b69682486e561d9bf5cef3ebc7c1b SHA512 ec761f07f045440595fc2c8561cbe275a8ed1d3520a1c4215327bf9b5b127678b1c728924272d9e714954fb0a388b696b3bfe37bd73981fa41cc06a190cb854c
MISC metadata.xml 406 BLAKE2B a9c50ef75e9049b1cc89df08b71e7640581c5f34fadcb0cd9fd9f29679bc3a1122db2e8fe8ad1ed738a9f4fe39771a8b4980fa4f2cb387e3e464c92a492b833c SHA512 b589dec8ab67f4e0aa9e073f55ed147ef22b08aa9adabb3270bb83d50a17da967e364ab131815c3a9ee32c8c61b0f3ec6ec6e3d7f4d8dd0fe5daaaa5420a89c0
diff --git a/dev-libs/tinyxml/files/tinyxml-2.6.2-CVE-2021-42260.patch b/dev-libs/tinyxml/files/tinyxml-2.6.2-CVE-2021-42260.patch
new file mode 100644
index 000000000000..d9eeb45c73b5
--- /dev/null
+++ b/dev-libs/tinyxml/files/tinyxml-2.6.2-CVE-2021-42260.patch
@@ -0,0 +1,23 @@
+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/
+
+--- 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
+ {
diff --git a/dev-libs/tinyxml/tinyxml-2.6.2-r5.ebuild b/dev-libs/tinyxml/tinyxml-2.6.2-r5.ebuild
new file mode 100644
index 000000000000..53f7786a222c
--- /dev/null
+++ b/dev-libs/tinyxml/tinyxml-2.6.2-r5.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs multilib
+
+DESCRIPTION="Simple and small C++ XML parser"
+HOMEPAGE="http://www.grinninglizard.com/tinyxml/index.html"
+SRC_URI="mirror://sourceforge/${PN}/${PN}_${PV//./_}.tar.gz"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="debug doc static-libs +stl"
+
+BDEPEND="doc? ( app-doc/doxygen )"
+
+S="${WORKDIR}/${PN}"
+
+DOCS=( "changes.txt" "readme.txt" )
+
+src_prepare() {
+ local major_v=$(ver_cut 1)
+ local minor_v=$(ver_cut 2-3)
+
+ sed -e "s:@MAJOR_V@:$major_v:" \
+ -e "s:@MINOR_V@:$minor_v:" \
+ "${FILESDIR}"/Makefile-3 > Makefile || die
+
+ eapply -p0 "${FILESDIR}"/${PN}-2.6.1-entity.patch
+ eapply -p0 "${FILESDIR}"/${PN}.pc.patch
+ eapply "${FILESDIR}"/${P}-CVE-2021-42260.patch
+
+ use debug && append-cppflags -DDEBUG
+ use stl && eapply "${FILESDIR}"/${P}-defineSTL.patch
+
+ sed -e "s:/lib:/$(get_libdir):g" -i tinyxml.pc || die # bug 738948
+ if use stl; then
+ sed -e "s/Cflags: -I\${includedir}/Cflags: -I\${includedir} -DTIXML_USE_STL=YES/g" -i tinyxml.pc || die
+ fi
+
+ if ! use static-libs; then
+ sed -e "/^all:/s/\$(name).a //" -i Makefile || die
+ fi
+
+ tc-export AR CXX RANLIB
+
+ [[ ${CHOST} == *-darwin* ]] && export LIBDIR="${EPREFIX}"/usr/$(get_libdir)
+ eapply_user
+}
+
+src_install() {
+ dolib.so *$(get_libname)*
+
+ insinto /usr/include
+ doins *.h
+
+ insinto /usr/share/pkgconfig
+ doins tinyxml.pc
+
+ einstalldocs
+
+ if use doc ; then
+ docinto html
+ dodoc -r docs/*
+ fi
+}