From: Pasukhin Dmitry Date: Sat, 16 Aug 2025 08:24:21 +0000 (+0100) Subject: Data Exchange, STP - Crash on empty list (#671) X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=afccf69cb76e13b939a754c3acbe603ed7153fed;p=occt.git Data Exchange, STP - Crash on empty list (#671) Added condition to always allocate an array in case of empty list --- diff --git a/src/DataExchange/TKDESTEP/StepData/StepData_StepReaderData.cxx b/src/DataExchange/TKDESTEP/StepData/StepData_StepReaderData.cxx index 6d55f967c0..8bdb3b113c 100644 --- a/src/DataExchange/TKDESTEP/StepData/StepData_StepReaderData.cxx +++ b/src/DataExchange/TKDESTEP/StepData/StepData_StepReaderData.cxx @@ -688,7 +688,14 @@ Standard_Boolean StepData_StepReaderData::ReadSubList(const Standard_Integer n numsub = SubListNumber(num, nump, Standard_False); if (numsub > 0) { - return (NbParams(numsub) > 0); + const Standard_Integer aNbParams = NbParams(numsub); + if (aNbParams == 0) + { + Handle(String) anErrMess = new String("Parameter n0.%d (%s) is an empty LIST"); + sprintf(txtmes, anErrMess->ToCString(), nump, mess); + ach->AddWarning(txtmes, anErrMess->ToCString()); + } + return Standard_True; } // Si optionel indefini, on passe l eponge numsub = 0;