From 92a4322f3a6f13e9ee321d2607ac5690d53e6512 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Mon, 18 May 2020 17:56:28 -0700 Subject: [PATCH] ircd::json: Assertions on iterator increments. --- ircd/json.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ircd/json.cc b/ircd/json.cc index 830a13e2f..962c9e66f 100644 --- a/ircd/json.cc +++ b/ircd/json.cc @@ -2401,7 +2401,6 @@ ircd::json::vector::const_iterator & ircd::json::vector::const_iterator::operator++() try { - this->state = {}; string_view &state(this->state); qi::parse(start, stop, vector_next_parse, state); @@ -2687,6 +2686,8 @@ ircd::json::object::const_iterator & ircd::json::object::const_iterator::operator++() try { + assert(start != stop); + state = {}; qi::parse(start, stop, object_next_parse, state); return *this; @@ -3057,6 +3058,8 @@ ircd::json::array::const_iterator & ircd::json::array::const_iterator::operator++() try { + assert(start != stop); + state = string_view{}; qi::parse(start, stop, array_next_parse, state); return *this;