diff options
| author | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
|---|---|---|
| committer | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
| commit | ecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch) | |
| tree | b89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /dev-cpp/yaml-cpp | |
| parent | 1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff) | |
| download | baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip | |
Updating liguros repo
Diffstat (limited to 'dev-cpp/yaml-cpp')
| -rw-r--r-- | dev-cpp/yaml-cpp/Manifest | 2 | ||||
| -rw-r--r-- | dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-CVE-2017-5950.patch | 45 | ||||
| -rw-r--r-- | dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-unbundle-gtest.patch | 70 | ||||
| -rw-r--r-- | dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-CVE-2017-11692.patch | 44 | ||||
| -rw-r--r-- | dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-abi-breakage.patch | 57 | ||||
| -rw-r--r-- | dev-cpp/yaml-cpp/metadata.xml | 12 | ||||
| -rw-r--r-- | dev-cpp/yaml-cpp/yaml-cpp-0.6.2.ebuild | 42 | ||||
| -rw-r--r-- | dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r1.ebuild | 45 | ||||
| -rw-r--r-- | dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r2.ebuild | 48 |
9 files changed, 365 insertions, 0 deletions
diff --git a/dev-cpp/yaml-cpp/Manifest b/dev-cpp/yaml-cpp/Manifest new file mode 100644 index 000000000000..9a5094e8b595 --- /dev/null +++ b/dev-cpp/yaml-cpp/Manifest @@ -0,0 +1,2 @@ +DIST yaml-cpp-0.6.2.tar.gz 1396250 BLAKE2B be342c212c980cdb03349dbafbe1db0bb581123b4dd6909393d3cdc86145b997a9d2f9b57a5e9d7c8cc60cdfd03f1c37e9db610d8784f2d29fdeada5ab322894 SHA512 fea8ce0a20a00cbc75023d1db442edfcd32d0ac57a3c41b32ec8d56f87cc1d85d7dd7a923ce662f5d3a315f91a736d6be0d649997acd190915c1d68cc93795e4 +DIST yaml-cpp-0.6.3.tar.gz 1398768 BLAKE2B 07abe1c56740105a0af2335bb1cd48086cb614d9d04c61342e53788bfb043fd7eb2629e441a0a5be50898b288f3526f1707c5fdf1d734395b6450c3103773b14 SHA512 68b9ce987cabc1dec79382f922de20cc2c222cb9c090ecb93dc686b048da5c917facf4fce6d8f72feea44b61e5a6770ed3b0c199c4cd4e6bde5b6245c09f8e49 diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-CVE-2017-5950.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-CVE-2017-5950.patch new file mode 100644 index 000000000000..2892108bd250 --- /dev/null +++ b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-CVE-2017-5950.patch @@ -0,0 +1,45 @@ +From d540476e31b080aa1f903ad20ec0426dd3838be7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= <anarcat@debian.org> +Date: Tue, 25 Apr 2017 20:10:20 -0400 +Subject: [PATCH] fix stack overflow in HandleNode() (CVE-2017-5950) + +simply set a hardcoded recursion limit to 2000 (inspired by Python's) +to avoid infinitely recursing into arbitrary data structures + +assert() the depth. unsure if this is the right approach, but given +that HandleNode() is "void", I am not sure how else to return an +error. the problem with this approach of course is that it will still +crash the caller, unless they have proper exception handling in place. + +Closes: #459 +--- + src/singledocparser.cpp | 2 ++ + src/singledocparser.h | 2 ++ + 2 files changed, 4 insertions(+) + +diff --git a/src/singledocparser.cpp b/src/singledocparser.cpp +index a27c1c3b..1b4262ee 100644 +--- a/src/singledocparser.cpp ++++ b/src/singledocparser.cpp +@@ -46,6 +46,8 @@ void SingleDocParser::HandleDocument(EventHandler& eventHandler) { + } + + void SingleDocParser::HandleNode(EventHandler& eventHandler) { ++ assert(depth < depth_limit); ++ depth++; + // an empty node *is* a possibility + if (m_scanner.empty()) { + eventHandler.OnNull(m_scanner.mark(), NullAnchor); +diff --git a/src/singledocparser.h b/src/singledocparser.h +index 2b92067c..7046f1e2 100644 +--- a/src/singledocparser.h ++++ b/src/singledocparser.h +@@ -51,6 +51,8 @@ class SingleDocParser : private noncopyable { + anchor_t LookupAnchor(const Mark& mark, const std::string& name) const; + + private: ++ int depth = 0; ++ int depth_limit = 2000; + Scanner& m_scanner; + const Directives& m_directives; + std::unique_ptr<CollectionStack> m_pCollectionStack; diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-unbundle-gtest.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-unbundle-gtest.patch new file mode 100644 index 000000000000..671bde36704a --- /dev/null +++ b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.2-unbundle-gtest.patch @@ -0,0 +1,70 @@ +From 259f944bc3e45420f5891737101260f07ab3030a Mon Sep 17 00:00:00 2001 +From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com> +Date: Tue, 27 Feb 2018 14:17:49 +0500 +Subject: [PATCH] Externalize googletest project + +Externalize gtest to avoid installation, fixes #539. +--- + test/CMakeLists.txt | 35 ++++++++++++++++++++++++++--------- + 1 file changed, 26 insertions(+), 9 deletions(-) + +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 3633da5..7b39dd4 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -1,16 +1,27 @@ ++include(ExternalProject) ++ ++ExternalProject_Add( ++ googletest_project ++ SOURCE_DIR "${CMAKE_SOURCE_DIR}/test/gtest-1.8.0" ++ INSTALL_DIR "${CMAKE_BINARY_DIR}/prefix" ++ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DBUILD_GMOCK=ON ++) ++ ++add_library(gmock UNKNOWN IMPORTED) ++set_target_properties(gmock PROPERTIES ++ IMPORTED_LOCATION ${PROJECT_BINARY_DIR}/prefix/lib/libgmock.a ++) ++ ++find_package(Threads) ++ ++include_directories(SYSTEM "${PROJECT_BINARY_DIR}/prefix/include") ++ + set(gtest_force_shared_crt ${MSVC_SHARED_RT} CACHE BOOL + "Use shared (DLL) run-time lib even when Google Test built as a static lib.") +-add_subdirectory(gtest-1.8.0) +-include_directories(SYSTEM gtest-1.8.0/googlemock/include) +-include_directories(SYSTEM gtest-1.8.0/googletest/include) +- +-if(WIN32 AND BUILD_SHARED_LIBS) +- add_definitions("-DGTEST_LINKED_AS_SHARED_LIBRARY") +-endif() + + if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR + CMAKE_CXX_COMPILER_ID MATCHES "Clang") +- set(yaml_test_flags "-Wno-variadic-macros -Wno-sign-compare") ++ set(yaml_test_flags "-Wno-variadic-macros -Wno-sign-compare") + + if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(yaml_test_flags "${yaml_test_flags} -Wno-c99-extensions") +@@ -36,9 +47,15 @@ add_executable(run-tests + ${test_sources} + ${test_headers} + ) ++ ++add_dependencies(run-tests googletest_project) ++ + set_target_properties(run-tests PROPERTIES + COMPILE_FLAGS "${yaml_c_flags} ${yaml_cxx_flags} ${yaml_test_flags}" + ) +-target_link_libraries(run-tests yaml-cpp gmock) ++target_link_libraries(run-tests ++ yaml-cpp ++ gmock ++ ${CMAKE_THREAD_LIBS_INIT}) + + add_test(yaml-test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/run-tests) +-- +2.16.1 + diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-CVE-2017-11692.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-CVE-2017-11692.patch new file mode 100644 index 000000000000..fd7a7198c1c6 --- /dev/null +++ b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-CVE-2017-11692.patch @@ -0,0 +1,44 @@ +From c9460110e072df84b7dee3eb651f2ec5df75fb18 Mon Sep 17 00:00:00 2001 +From: Jesse Beder <jbeder@gmail.com> +Date: Mon, 20 Jan 2020 18:05:15 -0600 +Subject: [PATCH] Fix reading empty token stack with a node with properties but + no scalar. + +E.g. `!2`. +--- + src/singledocparser.cpp | 6 ++++++ + test/integration/load_node_test.cpp | 5 +++++ + 2 files changed, 11 insertions(+) + +diff --git a/src/singledocparser.cpp b/src/singledocparser.cpp +index 52544dd6..47e9e047 100644 +--- a/src/singledocparser.cpp ++++ b/src/singledocparser.cpp +@@ -79,6 +79,12 @@ void SingleDocParser::HandleNode(EventHandler& eventHandler) { + if (!anchor_name.empty()) + eventHandler.OnAnchor(mark, anchor_name); + ++ // after parsing properties, an empty node is again a possibility ++ if (m_scanner.empty()) { ++ eventHandler.OnNull(mark, anchor); ++ return; ++ } ++ + const Token& token = m_scanner.peek(); + + if (token.type == Token::PLAIN_SCALAR && IsNullString(token.value)) { +diff --git a/test/integration/load_node_test.cpp b/test/integration/load_node_test.cpp +index 4f4f28e8..0e0dd6bc 100644 +--- a/test/integration/load_node_test.cpp ++++ b/test/integration/load_node_test.cpp +@@ -257,5 +257,10 @@ TEST(NodeTest, LoadTagWithParenthesis) { + EXPECT_EQ(node.as<std::string>(), "foo"); + } + ++TEST(NodeTest, LoadTagWithNullScalar) { ++ Node node = Load("!2"); ++ EXPECT_TRUE(node.IsNull()); ++} ++ + } // namespace + } // namespace YAML diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-abi-breakage.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-abi-breakage.patch new file mode 100644 index 000000000000..d9160856c47f --- /dev/null +++ b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-abi-breakage.patch @@ -0,0 +1,57 @@ +commit f5f288c7622d3547c29a8355b8ccda0155483b79 +Author: Till Hofmann <hofmann@kbsg.rwth-aachen.de> +Date: Sun Nov 17 22:43:20 2019 +0100 + + Revert "fix up static, so works as DLL (#559)" + + This reverts commit 774f25800e6f19f4b927023c85d1389af322da5e. + +diff --git a/include/yaml-cpp/node/detail/node_data.h b/include/yaml-cpp/node/detail/node_data.h +index 82fb79a..50bcd74 100644 +--- a/include/yaml-cpp/node/detail/node_data.h ++++ b/include/yaml-cpp/node/detail/node_data.h +@@ -81,7 +81,7 @@ class YAML_CPP_API node_data { + shared_memory_holder pMemory); + + public: +- static const std::string& empty_scalar(); ++ static std::string empty_scalar; + + private: + void compute_seq_size() const; +diff --git a/include/yaml-cpp/node/impl.h b/include/yaml-cpp/node/impl.h +index 7a3deac..b363f86 100644 +--- a/include/yaml-cpp/node/impl.h ++++ b/include/yaml-cpp/node/impl.h +@@ -166,13 +166,13 @@ inline T Node::as(const S& fallback) const { + inline const std::string& Node::Scalar() const { + if (!m_isValid) + throw InvalidNode(m_invalidKey); +- return m_pNode ? m_pNode->scalar() : detail::node_data::empty_scalar(); ++ return m_pNode ? m_pNode->scalar() : detail::node_data::empty_scalar; + } + + inline const std::string& Node::Tag() const { + if (!m_isValid) + throw InvalidNode(m_invalidKey); +- return m_pNode ? m_pNode->tag() : detail::node_data::empty_scalar(); ++ return m_pNode ? m_pNode->tag() : detail::node_data::empty_scalar; + } + + inline void Node::SetTag(const std::string& tag) { +diff --git a/src/node_data.cpp b/src/node_data.cpp +index 6cfedfc..eba1ae4 100644 +--- a/src/node_data.cpp ++++ b/src/node_data.cpp +@@ -13,10 +13,7 @@ + namespace YAML { + namespace detail { + +-const std::string& node_data::empty_scalar() { +- static const std::string svalue; +- return svalue; +-} ++std::string node_data::empty_scalar; + + node_data::node_data() + : m_isDefined(false), diff --git a/dev-cpp/yaml-cpp/metadata.xml b/dev-cpp/yaml-cpp/metadata.xml new file mode 100644 index 000000000000..1228e9929e7e --- /dev/null +++ b/dev-cpp/yaml-cpp/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>johu@gentoo.org</email> + <name>Johannes Huber</name> + </maintainer> + <upstream> + <remote-id type="github">jbeder/yaml-cpp</remote-id> + </upstream> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-cpp/yaml-cpp/yaml-cpp-0.6.2.ebuild b/dev-cpp/yaml-cpp/yaml-cpp-0.6.2.ebuild new file mode 100644 index 000000000000..925e955fe1d7 --- /dev/null +++ b/dev-cpp/yaml-cpp/yaml-cpp-0.6.2.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit cmake-multilib + +DESCRIPTION="YAML parser and emitter in C++" +HOMEPAGE="https://github.com/jbeder/yaml-cpp" +SRC_URI="https://github.com/jbeder/${PN}/archive/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0/0.6" +KEYWORDS="amd64 ~arm arm64 ~hppa ppc ppc64 sparc x86 ~amd64-linux ~x86-linux" +IUSE="test" +RESTRICT="!test? ( test )" + +DEPEND="test? ( dev-cpp/gtest )" + +S="${WORKDIR}/${PN}-${P}" + +PATCHES=( + "${FILESDIR}/${P}-CVE-2017-5950.patch" + "${FILESDIR}/${P}-unbundle-gtest.patch" +) + +src_prepare() { + sed -i \ + -e 's:INCLUDE_INSTALL_ROOT_DIR:INCLUDE_INSTALL_DIR:g' \ + yaml-cpp.pc.cmake || die + + cmake-utils_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DBUILD_SHARED_LIBS=ON + -DYAML_CPP_BUILD_TOOLS=OFF # Don't have install rule + -DYAML_CPP_BUILD_TESTS=$(usex test) + ) + cmake-multilib_src_configure +} diff --git a/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r1.ebuild b/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r1.ebuild new file mode 100644 index 000000000000..8a579eada7c4 --- /dev/null +++ b/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r1.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS="cmake" +inherit cmake-multilib + +DESCRIPTION="YAML parser and emitter in C++" +HOMEPAGE="https://github.com/jbeder/yaml-cpp" +SRC_URI="https://github.com/jbeder/${PN}/archive/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0/0.6" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="test" + +# test breaks build +# RESTRICT="!test? ( test )" +RESTRICT+="test" + +DEPEND="test? ( dev-cpp/gtest )" + +S="${WORKDIR}/${PN}-${P}" + +PATCHES=( "${FILESDIR}/${P}-abi-breakage.patch" ) + +src_prepare() { + sed -i \ + -e 's:INCLUDE_INSTALL_ROOT_DIR:INCLUDE_INSTALL_DIR:g' \ + yaml-cpp.pc.cmake || die + + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DBUILD_SHARED_LIBS=ON + -DYAML_BUILD_SHARED_LIBS=ON + -DYAML_CPP_BUILD_TOOLS=OFF # Don't have install rule + -DYAML_CPP_BUILD_TESTS=$(usex test) + ) + + cmake-multilib_src_configure +} diff --git a/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r2.ebuild b/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r2.ebuild new file mode 100644 index 000000000000..98223343eb1e --- /dev/null +++ b/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r2.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS="cmake" +inherit cmake-multilib + +DESCRIPTION="YAML parser and emitter in C++" +HOMEPAGE="https://github.com/jbeder/yaml-cpp" +SRC_URI="https://github.com/jbeder/${PN}/archive/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0/0.6" +KEYWORDS="amd64 ~arm arm64 ~hppa ppc ppc64 sparc x86 ~amd64-linux ~x86-linux" +IUSE="test" + +# test breaks build +# RESTRICT="!test? ( test )" +RESTRICT+="test" + +DEPEND="test? ( dev-cpp/gtest )" + +S="${WORKDIR}/${PN}-${P}" + +PATCHES=( + "${FILESDIR}/${P}-abi-breakage.patch" + "${FILESDIR}/${P}-CVE-2017-11692.patch" +) + +src_prepare() { + sed -i \ + -e 's:INCLUDE_INSTALL_ROOT_DIR:INCLUDE_INSTALL_DIR:g' \ + yaml-cpp.pc.cmake || die + + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DBUILD_SHARED_LIBS=ON + -DYAML_BUILD_SHARED_LIBS=ON + -DYAML_CPP_BUILD_TOOLS=OFF # Don't have install rule + -DYAML_CPP_BUILD_TESTS=$(usex test) + ) + + cmake-multilib_src_configure +} |
