From acfdfcb70e84824259dbacdabaa67729b06f78ad Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <dmitri.naumov@ufz.de>
Date: Wed, 27 Mar 2024 14:36:19 +0100
Subject: [PATCH] [ParL] Add safety check before vector access

The value k could be pointing to the end of the vector if the for loops runs
through without fulfilling the if-condition.
---
 ParameterLib/TimeDependentHeterogeneousParameter.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/ParameterLib/TimeDependentHeterogeneousParameter.cpp b/ParameterLib/TimeDependentHeterogeneousParameter.cpp
index a1f0bc29c01..be1eff3c8b1 100644
--- a/ParameterLib/TimeDependentHeterogeneousParameter.cpp
+++ b/ParameterLib/TimeDependentHeterogeneousParameter.cpp
@@ -60,6 +60,13 @@ std::vector<double> TimeDependentHeterogeneousParameter::operator()(
             break;
         }
     }
+    if (k == _time_parameter_mapping.size())
+    {
+        OGS_FATAL(
+            "Could not find parameter for time {}. There are {:d} "
+            "time-parameter pairs.",
+            t, _time_parameter_mapping.size());
+    }
     auto const t0 = _time_parameter_mapping[k - 1].first;
     auto const t1 = _time_parameter_mapping[k].first;
     auto const alpha = (t - t0) / (t1 - t0);
-- 
GitLab