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