From 4049bb4bb2942240abcb1837f9b05dcf61979401 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Tue, 28 Apr 2015 17:07:16 -0400 Subject: [PATCH] Fix out-of-bounds memory access in CvodesIntegrator::getErrorInfo Out-of-bounds memory was being accessed in cases where the system had fewer state variables than the specified maximum number of error estimates to display. --- src/numerics/CVodesIntegrator.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/numerics/CVodesIntegrator.cpp b/src/numerics/CVodesIntegrator.cpp index e024e14f4..e11677839 100644 --- a/src/numerics/CVodesIntegrator.cpp +++ b/src/numerics/CVodesIntegrator.cpp @@ -465,6 +465,7 @@ string CVodesIntegrator::getErrorInfo(int N) N_VDestroy(errs); N_VDestroy(errw); + N = std::min(N, static_cast(m_neq)); sort(weightedErrors.begin(), weightedErrors.end()); stringstream s; for (int i=0; i