Segfault in OSD_Host::InternetAddress

Hello,
  When writing a STEP AP203 file, the fallback value for the organization is the computer's IP address. This function segfaults, because gethostbyname returns a null pointer.

https://github.com/Open-Cascade-SAS/OCCT/blob/master/src/OSD/OSD_Host.cx...

OS: Linux 5.8.16
OCCT Version: 7.4.0p1

Backtrace:

#0  0x00007ffff6e937bd in OSD_Host::InternetAddress() () from /usr/lib/libTKernel.so.7                                                             
#1  0x00007ffff3c26d07 in STEPConstruct_AP203Context::DefaultPersonAndOrganization() () from /usr/lib/libTKSTEP.so.7                               
#2  0x00007ffff3c2950e in STEPConstruct_AP203Context::InitPart(STEPConstruct_Part const&) () from /usr/lib/libTKSTEP.so.7                          
#3  0x00007ffff3c2e20f in STEPConstruct_ContextTool::GetRootsForPart(STEPConstruct_Part const&) () from /usr/lib/libTKSTEP.so.7                    
#4  0x00007ffff3cb62c6 in STEPControl_ActorWrite::Transfer(opencascade::handle<Transfer_Finder> const&, opencascade::handle<Transfer_FinderProcess> const&) () from /usr/lib/libTKSTEP.so.7                                                                                                           
#5  0x00007ffff3467d2b in Transfer_ActorOfFinderProcess::Transferring(opencascade::handle<Transfer_Finder> const&, opencascade::handle<Transfer_ProcessForFinder> const&) () from /usr/lib/libTKXSBase.so.7                                                                                           
#6  0x00007ffff3470329 in Transfer_ProcessForFinder::TransferProduct(opencascade::handle<Transfer_Finder> const&) ()                               
   from /usr/lib/libTKXSBase.so.7                                                                                                                  
#7  0x00007ffff3473d3c in Transfer_ProcessForFinder::Transferring(opencascade::handle<Transfer_Finder> const&) () from /usr/lib/libTKXSBase.so.7   
#8  0x00007ffff3474167 in Transfer_ProcessForFinder::Transfer(opencascade::handle<Transfer_Finder> const&) () from /usr/lib/libTKXSBase.so.7       
#9  0x00007ffff34e956f in ?? () from /usr/lib/libTKXSBase.so.7                                                                                     
#10 0x00007ffff34e98d8 in XSControl_Controller::TransferWriteShape(TopoDS_Shape const&, opencascade::handle<Transfer_FinderProcess> const&, opencascade::handle<Interface_InterfaceModel> const&, int) const () from /usr/lib/libTKXSBase.so.7                                                        
#11 0x00007ffff3cba9ad in STEPControl_Controller::TransferWriteShape(TopoDS_Shape const&, opencascade::handle<Transfer_FinderProcess> const&, opencascade::handle<Interface_InterfaceModel> const&, int) const () from /usr/lib/libTKSTEP.so.7                                                        
#12 0x00007ffff35028b5 in XSControl_TransferWriter::TransferWriteShape(opencascade::handle<Interface_InterfaceModel> const&, TopoDS_Shape const&)  
    () from /usr/lib/libTKXSBase.so.7                                                                                                              
#13 0x00007ffff350b80f in XSControl_WorkSession::TransferWriteShape(TopoDS_Shape const&, bool) () from /usr/lib/libTKXSBase.so.7                   
#14 0x00007ffff3cc1fc2 in STEPControl_Writer::Transfer(TopoDS_Shape const&, STEPControl_StepModelType, bool) () from /usr/lib/libTKSTEP.so.7 

 

Kirill Gavrilov's picture

If you would like to help, please report the issue on Bugtracker, rather than on user forum:
https://dev.opencascade.org/index.php?q=home/get_involved