0024383: Access violation during STEP file import
authorgka <gka@opencascade.com>
Thu, 28 Nov 2013 07:19:34 +0000 (11:19 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 28 Nov 2013 07:20:40 +0000 (11:20 +0400)
Protection for null magnitude of vector written in file was added.

Test cases for issue CR24383

src/StepToGeom/StepToGeom_MakeLine.cxx
tests/bugs/step/bug24383 [new file with mode: 0755]

index 2c9355a..67b53bc 100755 (executable)
@@ -32,6 +32,7 @@
 #include <gp_Pnt.hxx>
 #include <gp_Vec.hxx>
 #include <gp_Dir.hxx>
+#include <Precision.hxx>
 
 //=============================================================================
 // Creation d' une Line de Geom a partir d' une Line de Step
@@ -46,6 +47,8 @@ Standard_Boolean StepToGeom_MakeLine::Convert (const Handle(StepGeom_Line)& SC,
     Handle(Geom_VectorWithMagnitude) D;
     if (StepToGeom_MakeVectorWithMagnitude::Convert(SC->Dir(),D))
     {
+      if( D->Vec().SquareMagnitude() < Precision::Confusion() * Precision::Confusion())
+        return Standard_False;
       const gp_Dir V(D->Vec());
       CC = new Geom_Line(P->Pnt(), V);
       return Standard_True;
diff --git a/tests/bugs/step/bug24383 b/tests/bugs/step/bug24383
new file mode 100755 (executable)
index 0000000..00c27bd
--- /dev/null
@@ -0,0 +1,10 @@
+puts "============"
+puts "OCC24383"
+puts "============"
+puts ""
+#######################################################################
+# Access violation during STEP file import
+#######################################################################
+
+ReadStep D [locate_data_file bug24383_224013.stp]
+