From 069057c43b75ea3ac8c3625fd6ebd39dd4f60397 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Thu, 29 Oct 2026 13:31:46 +0100 Subject: [PATCH] Fix implicit-conversion sanitizer failure in unit-class_parser.cpp Constructing a std::string from uint8_t iterators converts values >= 0x80 implicitly to char, which ci_test_clang_sanitizer rejects. Convert each byte with an explicit static_cast. Signed-off-by: Niels Lohmann --- tests/src/unit-class_parser.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/src/unit-class_parser.cpp b/tests/src/unit-class_parser.cpp index 1662fd037..090ab4b41 100644 --- a/tests/src/unit-class_parser.cpp +++ b/tests/src/unit-class_parser.cpp @@ -3150,7 +3150,12 @@ TEST_CASE("object keys are delivered decoded and validated") const std::vector expected = {stored}; const auto keys_of_bytes = [&keys_of_format](const std::vector& v, json::input_format_t format) { - return keys_of_format(std::string(v.begin(), v.end()), format); + std::string text; + for (const auto byte : v) + { + text.push_back(static_cast(byte)); + } + return keys_of_format(text, format); }; CHECK(keys_of_bytes({0xA1, 0x62, 0xFF, 0x5C, 0x01}, json::input_format_t::cbor) == expected);