From c494c58b8b9f16868f26cef285f8582779d64585 Mon Sep 17 00:00:00 2001 From: Markus Blatt <markus@dr-blatt.de> Date: Tue, 1 Sep 2015 15:58:49 +0200 Subject: [PATCH] [release,bugfix] Prevent index out of bounds in parametertreetest. by testing whether we work on a end iterator. In this case the distance function will fail. Found that out by gcc's stdlib with debugging turned on. --- dune/common/parametertreeparser.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dune/common/parametertreeparser.cc b/dune/common/parametertreeparser.cc index 8e1963d0e..25938dadc 100644 --- a/dune/common/parametertreeparser.cc +++ b/dune/common/parametertreeparser.cc @@ -189,7 +189,8 @@ void Dune::ParameterTreeParser::readNamedOptions(int argc, char* argv[], DUNE_THROW(ParameterTreeParserError, "parameter " << key << " already specified" << "\n" << helpstr); pt[key] = value; - done[std::distance(keywords.begin(),it)] = true; // mark key as stored + if(it != keywords.end()) + done[std::distance(keywords.begin(),it)] = true; // mark key as stored } else { // map to the next keyword in the list -- GitLab