diff options
Diffstat (limited to 'json4cpp/tests/src/unit-large_json.cpp')
| -rw-r--r-- | json4cpp/tests/src/unit-large_json.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/json4cpp/tests/src/unit-large_json.cpp b/json4cpp/tests/src/unit-large_json.cpp new file mode 100644 index 0000000000..98d16e3369 --- /dev/null +++ b/json4cpp/tests/src/unit-large_json.cpp @@ -0,0 +1,29 @@ +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ (supporting code) +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2026 Niels Lohmann <https://nlohmann.me> +// SPDX-License-Identifier: MIT + +#include "doctest_compatibility.h" + +#include <nlohmann/json.hpp> +using nlohmann::json; + +#include <algorithm> + +TEST_CASE("tests on very large JSONs") +{ + SECTION("issue #1419 - Segmentation fault (stack overflow) due to unbounded recursion") + { + const auto depth = 5000000; + + std::string s(static_cast<std::size_t>(2 * depth), '['); + std::fill(s.begin() + depth, s.end(), ']'); + + json _; + CHECK_NOTHROW(_ = nlohmann::json::parse(s)); + } +} + |
