0027070: Segfault when transferring HLR-created shapes via STEPControl_Writer
authorabv <abv@opencascade.com>
Thu, 8 Mar 2018 06:56:01 +0000 (09:56 +0300)
committerbugmaster <bugmaster@opencascade.com>
Fri, 16 Mar 2018 11:56:53 +0000 (14:56 +0300)
Added protection against null shape on writing: status IFSelect_RetVoid will be returned in such case (instead of access violation)

src/XSControl/XSControl_WorkSession.cxx
tests/bugs/step/bug27070 [new file with mode: 0644]

index 1f8caed..0ffc9fd 100644 (file)
@@ -458,7 +458,10 @@ IFSelect_ReturnStatus XSControl_WorkSession::TransferWriteShape (const TopoDS_Sh
   IFSelect_ReturnStatus  status;
   if (myController.IsNull()) return IFSelect_RetError;
   const Handle(Interface_InterfaceModel) &model = Model();
-  if (model.IsNull()) return IFSelect_RetVoid;
+  if (model.IsNull() || shape.IsNull())
+  {
+    return IFSelect_RetVoid;
+  }
 
   status = myTransferWriter->TransferWriteShape (model,shape);
   //  qui s occupe de tout, try/catch inclus
diff --git a/tests/bugs/step/bug27070 b/tests/bugs/step/bug27070
new file mode 100644 (file)
index 0000000..250204c
--- /dev/null
@@ -0,0 +1,8 @@
+puts "# ======================================================================="
+puts "# 0027070: Segfault when transferring HLR-created shapes via STEPControl_Writer"
+puts "# ======================================================================="
+puts ""
+
+puts "Check that writing null shape does not produce access violation"
+puts "REQUIRED ALL: Error: translation failed, status = 0"
+stepwrite a a