From 2f828a21cad8fc79caa9a71ca5249c1dcfc15ee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Sj=C3=B6lund?= Date: Tue, 24 Oct 2017 11:24:01 +0200 Subject: [PATCH] [MAT4] Add special case when nrows==0 This fixes ticket:4581 by not crashing OMEdit when opening a corrupt mat-file. Belonging to [master]: - OpenModelica/OMCompiler#1937 --- SimulationRuntime/c/util/read_matlab4.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/SimulationRuntime/c/util/read_matlab4.c b/SimulationRuntime/c/util/read_matlab4.c index 91fe18d0e73..8811688897e 100644 --- a/SimulationRuntime/c/util/read_matlab4.c +++ b/SimulationRuntime/c/util/read_matlab4.c @@ -567,7 +567,9 @@ double* omc_matlab4_read_vals(ModelicaMatReader *reader, int varIndex) size_t absVarIndex = abs(varIndex); size_t ix = (varIndex < 0 ? absVarIndex + reader->nvar : absVarIndex) -1; assert(absVarIndex > 0 && absVarIndex <= reader->nvar); - if(!reader->vars[ix]) { + if (0 == reader->nrows) { + return NULL; + } else if(!reader->vars[ix]) { unsigned int i; double *tmp = (double*) malloc(reader->nrows*sizeof(double)); if(reader->doublePrecision==1)