From b1b7af918d638b629978ed71d4dfe72d9c09a036 Mon Sep 17 00:00:00 2001 From: Sreenivasa Pydi Date: Mon, 16 Mar 2026 14:24:25 -0700 Subject: [PATCH 1/2] prevent strings from being misclassified as arrays in variant visitor --- json5_parser/json5_parser_value.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/json5_parser/json5_parser_value.h b/json5_parser/json5_parser_value.h index 6181cea..56b496c 100644 --- a/json5_parser/json5_parser_value.h +++ b/json5_parser/json5_parser_value.h @@ -119,6 +119,8 @@ class Value_impl { class Variant_converter_visitor : public boost::static_visitor { public: + Variant operator()(const String_type& value) const { return value; } + template class Cont> Variant operator()(const Cont& cont) const { return Array(cont.begin(), cont.end()); From 22a8b1c2b574a19ec6f4a3e4c26b40cef29fea96 Mon Sep 17 00:00:00 2001 From: Sreenivasa Pydi Date: Mon, 13 Apr 2026 12:12:54 -0700 Subject: [PATCH 2/2] Port to Debian 12, Fix -Wrestrict warning in substitute_esc_chars Guard String_type(begin, end) construction with an explicit begin >= end check so GCC can prove the range is non-negative. --- json5_parser/json5_parser_reader_template.h | 1 + 1 file changed, 1 insertion(+) diff --git a/json5_parser/json5_parser_reader_template.h b/json5_parser/json5_parser_reader_template.h index 865daf7..9499e45 100644 --- a/json5_parser/json5_parser_reader_template.h +++ b/json5_parser/json5_parser_reader_template.h @@ -140,6 +140,7 @@ String_type substitute_esc_chars(typename String_type::const_iterator begin, typename String_type::const_iterator end) { typedef typename String_type::const_iterator Iter_type; + if (begin >= end) return String_type(); if (end - begin < 2) return String_type(begin, end); String_type result;