occt: master 2b2be3fb

Author Committer Branch Timestamp Parent
tiv bugmaster master 2019-03-28 09:42:41 master 833034f3
Affected Issues  0030550: Coding - Integer overflow in Standard_CString HashCodes
Changeset 0030550: Coding - Integer overflow in Standard_CString HashCodes
0030551: Foundation Classes - Integer overflow in NCollection_CellFilter HashCode

Signed integers are not used in hash code functions now to prevent undefined behavior on left shift operations with signed integers.
A possibility of negative values of hash codes is eliminated.
INT_MAX → IntegerLast() in hash code functions.
All found hash code functions behaves uniformly now: they return a value in the range [1, theUpperBound]. Relevant comments are added to such functions.
mod - src/BOPDS/BOPDS_Pair.hxx Diff File
mod - src/BOPDS/BOPDS_PairMapHasher.hxx Diff File
mod - src/BOPDS/BOPDS_PaveMapHasher.hxx Diff File
mod - src/BOPDS/BOPDS_PaveMapHasher.lxx Diff File
mod - src/BOPTools/BOPTools_Parallel.hxx Diff File
mod - src/BOPTools/BOPTools_Set.cxx Diff File
mod - src/BOPTools/BOPTools_Set.hxx Diff File
mod - src/BOPTools/BOPTools_SetMapHasher.hxx Diff File
mod - src/BOPTools/BOPTools_SetMapHasher.lxx Diff File
mod - src/BRepMesh/BRepMesh_Edge.hxx Diff File
mod - src/BRepMesh/BRepMesh_OrientedEdge.hxx Diff File
mod - src/BRepMesh/BRepMesh_Triangle.hxx Diff File
mod - src/BRepMesh/BRepMesh_Vertex.hxx Diff File
mod - src/Font/Font_FontMgr.hxx Diff File
mod - src/Font/Font_SystemFont.hxx Diff File
mod - src/IMeshData/IMeshData_Types.hxx Diff File
mod - src/Interface/Interface_MapAsciiStringHasher.cxx Diff File
mod - src/Interface/Interface_MapAsciiStringHasher.hxx Diff File
mod - src/IntPolyh/IntPolyh_Couple.hxx Diff File
mod - src/IntPolyh/IntPolyh_CoupleMapHasher.hxx Diff File
mod - src/IntTools/IntTools_CurveRangeSampleMapHasher.hxx Diff File
mod - src/IntTools/IntTools_CurveRangeSampleMapHasher.lxx Diff File
mod - src/IntTools/IntTools_SurfaceRangeSampleMapHasher.hxx Diff File
mod - src/IntTools/IntTools_SurfaceRangeSampleMapHasher.lxx Diff File
mod - src/MAT2d/MAT2d_MapBiIntHasher.hxx Diff File
mod - src/MAT2d/MAT2d_MapBiIntHasher.lxx Diff File
mod - src/MeshVS/MeshVS_SymmetricPairHasher.hxx Diff File
mod - src/MeshVS/MeshVS_TwoColors.cxx Diff File
mod - src/MeshVS/MeshVS_TwoColors.hxx Diff File
mod - src/MeshVS/MeshVS_TwoNodes.hxx Diff File
mod - src/MoniTool/MoniTool_ElemHasher.cxx Diff File
mod - src/MoniTool/MoniTool_ElemHasher.hxx Diff File
mod - src/MoniTool/MoniTool_MTHasher.hxx Diff File
mod - src/MoniTool/MoniTool_MTHasher.lxx Diff File
mod - src/NCollection/NCollection_AccAllocator.hxx Diff File
mod - src/NCollection/NCollection_CellFilter.hxx Diff File
mod - src/NCollection/NCollection_DefaultHasher.hxx Diff File
mod - src/OSD/OSD_Thread.cxx Diff File
mod - src/Poly/Poly_MakeLoops.hxx Diff File
mod - src/QANCollection/QANCollection_Test.cxx Diff File
mod - src/Quantity/Quantity_ColorHasher.hxx Diff File
mod - src/Quantity/Quantity_ColorRGBAHasher.hxx Diff File
mod - src/RWStl/RWStl_Reader.cxx Diff File
mod - src/Standard/FILES Diff File
mod - src/Standard/Standard_Address.hxx Diff File
mod - src/Standard/Standard_CString.cxx Diff File
mod - src/Standard/Standard_CString.hxx Diff File
mod - src/Standard/Standard_ErrorHandler.cxx Diff File
mod - src/Standard/Standard_ExtString.cxx Diff File
mod - src/Standard/Standard_ExtString.hxx Diff File
mod - src/Standard/Standard_GUID.cxx Diff File
mod - src/Standard/Standard_GUID.hxx Diff File
mod - src/Standard/Standard_Handle.hxx Diff File
mod - src/Standard/Standard_Integer.hxx Diff File
mod - src/Standard/Standard_Real.cxx Diff File
mod - src/Standard/Standard_Real.hxx Diff File
mod - src/Standard/Standard_ShortReal.cxx Diff File
mod - src/Standard/Standard_ShortReal.hxx Diff File
mod - src/Standard/Standard_Size.hxx Diff File
add - src/Standard/Standard_Std.hxx Diff File
mod - src/Standard/Standard_ThreadId.hxx Diff File
mod - src/Standard/Standard_Transient.hxx Diff File
mod - src/Standard/Standard_Type.cxx Diff File
mod - src/STEPConstruct/STEPConstruct_PointHasher.hxx Diff File
mod - src/STEPConstruct/STEPConstruct_PointHasher.lxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_CartesianPointHasher.cxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_CartesianPointHasher.hxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_PointPairHasher.cxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_PointPairHasher.hxx Diff File
mod - src/TCollection/TCollection_AsciiString.hxx Diff File
mod - src/TCollection/TCollection_AsciiString.lxx Diff File
mod - src/TCollection/TCollection_ExtendedString.hxx Diff File
mod - src/TColStd/TColStd_PackedMapOfInteger.cxx Diff File
mod - src/TDF/TDF_LabelMapHasher.hxx Diff File
mod - src/TObj/TObj_Common.hxx Diff File
mod - src/TopLoc/TopLoc_Location.cxx Diff File
mod - src/TopLoc/TopLoc_Location.hxx Diff File
mod - src/TopoDS/TopoDS_Shape.cxx Diff File
mod - src/TopoDS/TopoDS_Shape.hxx Diff File
mod - src/TopTools/TopTools_OrientedShapeMapHasher.hxx Diff File
mod - src/TopTools/TopTools_OrientedShapeMapHasher.lxx Diff File
mod - src/TopTools/TopTools_ShapeMapHasher.hxx Diff File
mod - src/TopTools/TopTools_ShapeMapHasher.lxx Diff File
mod - src/Transfer/Transfer_FindHasher.cxx Diff File
mod - src/Transfer/Transfer_FindHasher.hxx Diff File
mod - src/VrmlData/VrmlData_Node.cxx Diff File
mod - src/VrmlData/VrmlData_Node.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_AssemblyItemId.hxx Diff File
mod - src/XCAFPrs/XCAFPrs_Style.hxx Diff File