]> OCCT Git - occt.git/commitdiff
Data Exchange, STP - Crash on empty list (#671)
authorPasukhin Dmitry <dpasukhi@opencascade.com>
Sat, 16 Aug 2025 08:24:21 +0000 (09:24 +0100)
committerGitHub <noreply@github.com>
Sat, 16 Aug 2025 08:24:21 +0000 (09:24 +0100)
Added condition to always allocate an array in case of empty list

src/DataExchange/TKDESTEP/StepData/StepData_StepReaderData.cxx

index 6d55f967c0f0224c34a0c3875a456c4d493dab97..8bdb3b113c7541df8988addc062eb335b8fc3521 100644 (file)
@@ -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;