From b1f2cdf56e5eea363adc4c1ea1bd418f65733a7a Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 19 Aug 2022 14:36:42 +0100 Subject: gentoo auto-resync : 19:08:2022 - 14:36:41 --- .../files/yaml-cpp-0.6.3-CVE-2017-11692.patch | 44 ------ .../files/yaml-cpp-0.6.3-abi-breakage.patch | 57 -------- .../files/yaml-cpp-0.6.3-fix-overflows.patch | 149 --------------------- dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-gtest.patch | 44 ------ 4 files changed, 294 deletions(-) delete mode 100644 dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-CVE-2017-11692.patch delete mode 100644 dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-abi-breakage.patch delete mode 100644 dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-fix-overflows.patch delete mode 100644 dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-gtest.patch (limited to 'dev-cpp/yaml-cpp/files') 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 deleted file mode 100644 index fd7a7198c1c6..000000000000 --- a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-CVE-2017-11692.patch +++ /dev/null @@ -1,44 +0,0 @@ -From c9460110e072df84b7dee3eb651f2ec5df75fb18 Mon Sep 17 00:00:00 2001 -From: Jesse Beder -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(), "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 deleted file mode 100644 index d9160856c47f..000000000000 --- a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-abi-breakage.patch +++ /dev/null @@ -1,57 +0,0 @@ -commit f5f288c7622d3547c29a8355b8ccda0155483b79 -Author: Till Hofmann -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/files/yaml-cpp-0.6.3-fix-overflows.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-fix-overflows.patch deleted file mode 100644 index 4c5418db22d3..000000000000 --- a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-fix-overflows.patch +++ /dev/null @@ -1,149 +0,0 @@ -This patch comes from the upstream commit here[1], slightly modified to -apply to 0.6.3. The pull request[2] mentions fixing CVE-2017-5950, -CVE-2018-{20573,20574}, and CVE-2019-6285. Note that CVE-2019-6292 appears to -be a duplicate of CVE-2019-6285 [3]. - -[1] https://github.com/jbeder/yaml-cpp/commit/4edff1fa5dbfca16fc72d89870841bee89f8ef89 -[2] https://github.com/jbeder/yaml-cpp/pull/807 -[3] https://github.com/jbeder/yaml-cpp/issues/660 - -diff --git a/include/yaml-cpp/depthguard.h b/include/yaml-cpp/depthguard.h -new file mode 100644 -index 00000000..8ca61ac6 ---- /dev/null -+++ b/include/yaml-cpp/depthguard.h -@@ -0,0 +1,77 @@ -+#ifndef DEPTH_GUARD_H_00000000000000000000000000000000000000000000000000000000 -+#define DEPTH_GUARD_H_00000000000000000000000000000000000000000000000000000000 -+ -+#if defined(_MSC_VER) || \ -+ (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ -+ (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 -+#pragma once -+#endif -+ -+#include "exceptions.h" -+ -+namespace YAML { -+ -+/** -+ * @brief The DeepRecursion class -+ * An exception class which is thrown by DepthGuard. Ideally it should be -+ * a member of DepthGuard. However, DepthGuard is a templated class which means -+ * that any catch points would then need to know the template parameters. It is -+ * simpler for clients to not have to know at the catch point what was the -+ * maximum depth. -+ */ -+class DeepRecursion : public ParserException { -+public: -+ virtual ~DeepRecursion() = default; -+ -+ DeepRecursion(int depth, const Mark& mark_, const std::string& msg_); -+ -+ // Returns the recursion depth when the exception was thrown -+ int depth() const { -+ return m_depth; -+ } -+ -+private: -+ int m_depth = 0; -+}; -+ -+/** -+ * @brief The DepthGuard class -+ * DepthGuard takes a reference to an integer. It increments the integer upon -+ * construction of DepthGuard and decrements the integer upon destruction. -+ * -+ * If the integer would be incremented past max_depth, then an exception is -+ * thrown. This is ideally geared toward guarding against deep recursion. -+ * -+ * @param max_depth -+ * compile-time configurable maximum depth. -+ */ -+template -+class DepthGuard final { -+public: -+ DepthGuard(int & depth_, const Mark& mark_, const std::string& msg_) : m_depth(depth_) { -+ ++m_depth; -+ if ( max_depth <= m_depth ) { -+ throw DeepRecursion{m_depth, mark_, msg_}; -+ } -+ } -+ -+ DepthGuard(const DepthGuard & copy_ctor) = delete; -+ DepthGuard(DepthGuard && move_ctor) = delete; -+ DepthGuard & operator=(const DepthGuard & copy_assign) = delete; -+ DepthGuard & operator=(DepthGuard && move_assign) = delete; -+ -+ ~DepthGuard() { -+ --m_depth; -+ } -+ -+ int current_depth() const { -+ return m_depth; -+ } -+ -+private: -+ int & m_depth; -+}; -+ -+} // namespace YAML -+ -+#endif // DEPTH_GUARD_H_00000000000000000000000000000000000000000000000000000000 -diff --git a/src/depthguard.cpp b/src/depthguard.cpp -new file mode 100644 -index 00000000..b88cd340 ---- /dev/null -+++ b/src/depthguard.cpp -@@ -0,0 +1,10 @@ -+#include "yaml-cpp/depthguard.h" -+ -+namespace YAML { -+ -+DeepRecursion::DeepRecursion(int depth, const Mark& mark_, const std::string& msg_) -+ : ParserException(mark_, msg_), -+ m_depth(depth) { -+} -+ -+} // namespace YAML -diff --git a/src/singledocparser.cpp b/src/singledocparser.cpp -index 47e9e047..3e5638be 100644 ---- a/src/singledocparser.cpp -+++ b/src/singledocparser.cpp -@@ -7,6 +7,7 @@ - #include "singledocparser.h" - #include "tag.h" - #include "token.h" -+#include "yaml-cpp/depthguard.h" - #include "yaml-cpp/emitterstyle.h" - #include "yaml-cpp/eventhandler.h" - #include "yaml-cpp/exceptions.h" // IWYU pragma: keep -@@ -47,6 +48,8 @@ void SingleDocParser::HandleDocument(EventHandler& eventHandler) { - } - - void SingleDocParser::HandleNode(EventHandler& eventHandler) { -+ DepthGuard<2000> depthguard(depth, m_scanner.mark(), ErrorMsg::BAD_FILE); -+ - // 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 c8cfca9d..f484eb1f 100644 ---- a/src/singledocparser.h -+++ b/src/singledocparser.h -@@ -15,6 +15,7 @@ - - namespace YAML { - class CollectionStack; -+template class DepthGuard; // depthguard.h - class EventHandler; - class Node; - class Scanner; -@@ -55,6 +56,7 @@ class SingleDocParser { - anchor_t LookupAnchor(const Mark& mark, const std::string& name) const; - - private: -+ int depth = 0; - Scanner& m_scanner; - const Directives& m_directives; - std::unique_ptr m_pCollectionStack; diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-gtest.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-gtest.patch deleted file mode 100644 index 51f2a7b563ff..000000000000 --- a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-gtest.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt -index 0a669d5..bc8bbdd 100644 ---- a/test/CMakeLists.txt -+++ b/test/CMakeLists.txt -@@ -7,22 +7,7 @@ if(MSVC) - set(CMAKE_STATIC_LIBRARY_PREFIX "") - endif() - --ExternalProject_Add( -- googletest_project -- SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.8.0" -- INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/prefix" -- CMAKE_ARGS -- -DCMAKE_INSTALL_PREFIX:PATH= -- -DBUILD_GMOCK=ON -- -Dgtest_force_shared_crt=ON --) -- --add_library(gmock UNKNOWN IMPORTED) --set_target_properties(gmock PROPERTIES -- IMPORTED_LOCATION -- ${PROJECT_BINARY_DIR}/test/prefix/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX} --) -- -+find_package(GTest REQUIRED CONFIG) - find_package(Threads) - - include_directories(SYSTEM "${PROJECT_BINARY_DIR}/test/prefix/include") -@@ -56,14 +41,12 @@ set_target_properties(run-tests PROPERTIES - CXX_STANDARD_REQUIRED ON - ) - --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 -+ GTest::gmock - ${CMAKE_THREAD_LIBS_INIT}) - - add_test(yaml-test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/run-tests) -- cgit v1.2.3