From 91ba7ab0817776d14b4b651240496de152e792c9 Mon Sep 17 00:00:00 2001 From: Thomas Beutlich Date: Tue, 3 May 2022 17:41:17 +0200 Subject: [PATCH] Fix allocation size --- Modelica/Resources/C-Sources/ModelicaStandardTables.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Modelica/Resources/C-Sources/ModelicaStandardTables.c b/Modelica/Resources/C-Sources/ModelicaStandardTables.c index 3aa702e11e..6e96fc03aa 100644 --- a/Modelica/Resources/C-Sources/ModelicaStandardTables.c +++ b/Modelica/Resources/C-Sources/ModelicaStandardTables.c @@ -39,6 +39,10 @@ Modelica.Blocks.Tables.CombiTable2Dv Changelog: + May 03, 2022: by Hans Olsson, Dassault Systemes + Fixed index-out-of-bounds exception in spline + initialization of 2D tables that actually degrade + to 1D tables (ticket #3983) Jan. 31, 2022: by Hans Olsson, Dassault Systemes Added better support for one-sided derivatives of CombiTable2D. @@ -6925,7 +6929,7 @@ static CubicHermite2D* spline2DInit(_In_ const double* table, size_t nRow, return NULL; } - spline = (CubicHermite2D*)malloc((nCol - 1)*sizeof(CubicHermite2D)); + spline = (CubicHermite2D*)malloc((nCol - 2)*sizeof(CubicHermite2D)); if (NULL == spline) { free(tableT); return NULL; @@ -6957,7 +6961,7 @@ static CubicHermite2D* spline2DInit(_In_ const double* table, size_t nRow, size_t i; int cols = 2; - spline = (CubicHermite2D*)malloc((nRow - 1)*sizeof(CubicHermite2D)); + spline = (CubicHermite2D*)malloc((nRow - 2)*sizeof(CubicHermite2D)); if (NULL == spline) { return NULL; }