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