View Issue Details

IDProjectCategoryView StatusLast Update
0030550CommunityOCCT:Foundation Classespublic2019-05-20 12:42
Reportergalbramc Assigned Tobugmaster  
PrioritynormalSeveritymajor 
Status closedResolutionfixed 
Product Version7.3.0 
Target Version7.4.0Fixed in Version7.4.0 
Summary0030550: Coding - Integer overflow in Standard_CString HashCodes
DescriptionI compiled OCCT with the -fsanitize=undefined flag and got the following errors:

src/Standard/Standard_CString.cxx:52:19: runtime error: left shift of 1949099841 by 5 places cannot be represented in type 'int'
src/Standard/Standard_CString.cxx:52:25: runtime error: signed integer overflow: 855879620 + 1618344064 cannot be represented in type 'int'
src/Standard/Standard_CString.cxx:52:25: runtime error: signed integer overflow: 65441945 + 2094142240 cannot be represented in type 'int'

I can provide a specific example string that reproduces this if needed.

A simple fix is to change 'Standard_Integer hash' to 'Standard_Size hash', as well as the return value of the function.
Steps To ReproduceCompile OCCT with a g++ newer than 4.9 with the -fsanitize=undefined compiler flag and run the test suite.
TagsNo tags attached.
Test case numbernot required

Attached Files

  • Standard_CString_HashCode.tgz (916 bytes)

Relationships

parent of 0030718 closedbugmaster Open CASCADE Foundation Classes, TColStd_PackedMapOfInteger - broken triangulation within 32-bit builds 
parent of 0030720 closedbugmaster Open CASCADE Coding - fix HashCode() function problems that are not resolved with 30550 
related to 0030608 newvpozdyayev Open CASCADE Foundation Classes - Undefined behavior caused by overflow in arithmetic operations with signed integers in HashCode() functions 
related to 0030551 closedbugmaster Community Foundation Classes - Integer overflow in NCollection_CellFilter HashCode 
child of 0030557 newvpozdyayev Open CASCADE Coding - eliminate errors reported by -fsanitize 

Activities

git

2019-03-22 19:38

administrator   ~0083202

Branch CR30550 has been created by tizmaylo.

SHA-1: 6f4e21209962944e39be868b7d403f5080c872cb


Detailed log of new commits:

Author: tiv
Date: Fri Mar 22 19:32:17 2019 +0300

    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.

galbramc

2019-03-24 23:08

reporter   ~0083211

Is casting the 'unsigned int' back to 'int' really safe here? I'm concerned that the issue is just being delayed rather than resolved...

tizmaylo

2019-03-25 11:01

developer   ~0083215

The cast "unsigned int → int" is implementation defined. What problem do you see here?

And could you provide an example string that reproduces the original overflow problem?

git

2019-03-25 12:02

administrator   ~0083220

Branch CR30550 has been updated forcibly by tizmaylo.

SHA-1: 075515231ae1e33b04e10dc073ac4b273af95f5e

galbramc

2019-03-25 19:46

reporter  

Standard_CString_HashCode.tgz (916 bytes)

galbramc

2019-03-25 19:50

reporter   ~0083225

I uploaded some examples that produce the overflow error. You have to compile OCCT with the -fsanitize=undefined flags to get the message. Personally I add:

    SET( CMAKE_CXX_FLAGS_MEMCHECK "-g -Os -fsanitize=address -fno-omit-frame-pointer" CACHE STRING "C++ Compiler Memory Check Flags" FORCE )
    SET( CMAKE_CXX_FLAGS_UNDEFINED "-g -Os -fsanitize=undefined -fno-omit-frame-pointer" CACHE STRING "C++ Compiler Undefined Check Flags" FORCE )


to my cmake files and set the CMAKE_BUILD_TYPE to "Undefined" to enable the flags.

If you support negative hash codes then I suppose casting back to an int is valid.

git

2019-03-26 12:36

administrator   ~0083230

Branch CR30550 has been updated by tizmaylo.

SHA-1: 2e778e4a1cbc2a5a842b36b0b27165f32ede4f1c


Detailed log of new commits:

Author: tiv
Date: Tue Mar 26 12:30:00 2019 +0300

    0030550: Coding - Integer overflow in Standard_CString HashCodes
    0030551: Foundation Classes - Integer overflow in NCollection_CellFilter HashCode
    
    A possibility of negative values of hash codes is eliminated.

tizmaylo

2019-03-26 14:33

developer   ~0083233

Dear galbramc,

it looks like you are right, negative values of hash codes are not allowed. Thank you for the provided examples!

galbramc

2019-03-26 14:46

reporter   ~0083235

You are welcome. Any chance these or some other examples can be added to your test suite with some assertions so this does not creep back in?

I also wonder how all those negative hash codes were being used before...

tizmaylo

2019-03-26 14:54

developer   ~0083237

Patch is ready for review:
http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30550-master-TIV/view/ALL/

kgv

2019-03-26 16:31

developer   ~0083244

-      return aCode % theUpper;
+      return static_cast<Standard_Integer>(aCode & INT_MAX) % theUpper;

IntegerLast() alias is preferred over INT_MAX.

And please squash commits.

git

2019-03-26 20:19

administrator   ~0083260

Branch CR30550 has been updated forcibly by tizmaylo.

SHA-1: 77cf58aeb1fad650fdb953d7d4f6ef0a6a075251

tizmaylo

2019-03-27 10:09

developer   ~0083261

Patch is ready for review:
http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30550-master-TIV/view/ALL/

kgv

2019-03-27 12:03

developer   ~0083264

Last edited: 2019-03-27 12:04

@@ -52,7 +52,7 @@ Standard_Integer HashCodes (const Standard_CString Value,
     hash = ((hash << 5) + hash) ^ (*c);
   }
 
-  return hash;
+  return hash & IntegerLast();
...
inline Standard_Integer HashCode (const Standard_CString theStr,
                                  const Standard_Integer theLen,
                                  const Standard_Integer theUpper)
{
//  return (Abs( HashCodes( Value , Len ) ) % Upper ) + 1 ;
  return HashCode (HashCodes (theStr, theLen), theUpper);
}
...
Standard_Integer HashCode (const Standard_CString Value,
                           const Standard_Integer Upper )
{
  Standard_Integer aLen = (Standard_Integer)strlen(Value);
  return HashCode (HashCodes (Value, aLen), Upper);
}

This would push truncation to be done twice.
Do you think compiler will notice and optimize that?
Anyway, it looks redundant - it might be better updating documentation of HashCodes() to specify that result is unbound (including negative values), which is actually already expected.

-  return h % upper;
+  return static_cast<Standard_Integer>(h & IntegerLast()) % upper;

This implementation looks broken - all other HashCodes() guaranty the range [1, upper].
Consider calling HashCode(int,int) instead, as in other places.
Please also update documentation for HashCode() functions in Standard package to mention the output range - currently it is explicitly specified only for Standard_CString implementation.
//! Returns bounded hash code for a null-terminated string,
//! in range [1, theUpper]
Standard_Integer HashCode (const Standard_CString theStr,
                           const Standard_Integer theUpper);


-  return HashCode (hash, Upper);
+  return HashCode (static_cast<Standard_Integer>(hash), Upper);

It might be reasonable providing a HashCode(unsigned int, int) instead of numerous static_casts.
Although this would require avoiding ambguity with size_t/char32_t/unsigned int on some platforms.

kgv

2019-03-27 12:07

developer   ~0083265

Last edited: 2019-03-27 12:08

galbramc wrote:
> I also wonder how all those negative hash codes were being used before...
They actually never produced, because HashCode(int,int) always truncated result to the bound range.
So far, only TopLoc_Location::HashCode()/TopLoc_MapLocationHasher implementation looks initially broken,
although I may misunderstand the math:
  // the HashCode computed for a Location is the bitwise exclusive or
  // of values computed for each element of the list
  // to compute this value, the depth of the element is computed 
  // the depth is the position of the element in the list
  // this depth is multiplied by 3
  // each element is an elementary Datum raised to a Power
  // the Power is bitwise left shifted by depth
  // this is added to the HashCode of the Datum
  // this value is biwise rotated by depth
  // the use of depth avoids getting the same result for two permutated lists.

  Standard_Integer depth = 0;
  unsigned int h = 0;
  TopLoc_SListOfItemLocation items = myItems;
  while (items.More()) {
    depth += 3;
    unsigned int i = ::HashCode (items.Value().myDatum, upper);
    unsigned int j = ( (i + items.Value().myPower) <<depth);
    j = j>>(32-depth) | j<<depth;
    h ^= j;
    items.Next();
  }
  return h % upper;


git

2019-03-28 12:49

administrator   ~0083277

Branch CR30550 has been updated forcibly by tizmaylo.

SHA-1: 63e17307c4fd089ebc41569182cc710b24421f69

tizmaylo

2019-03-28 14:41

developer   ~0083279

Patch is ready for review:
http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30550-master-TIV/view/ALL/

msv

2019-04-09 12:57

developer   ~0083560

I see in many places the code of HashCode was wrong, as returned the range [0,upper-1], running the code value % upper.

You have replaced such codes with calling the proper HashCode for the given type. It is OK. I wonder how it worked earlier and did not crash due to this error.

However, I have found one place you have left returning possible 0. It is in src/VrmlData/VrmlData_Node.cxx. I think it should be also fixed.

kgv

2019-04-09 13:04

developer   ~0083561

Last edited: 2019-04-09 13:04

> I wonder how it worked earlier and did not crash due to this error.
As far as I understand, NCollection map classes, where these hash functions are actually used, allocates array of [0,Upper] size,
so that 1 element is always wasted in both cases [1,Upper]/[0,Upper-1].

msv

2019-04-09 13:11

developer   ~0083564

Oh, yes, then nothing needs to be changed.

msv

2019-04-09 13:12

developer   ~0083565

Reviewed.

kgv

2019-04-09 13:17

developer   ~0083567

Last edited: 2019-04-09 13:18

> Oh, yes, then nothing needs to be changed.
I didn't meant that - VrmlData_Node.cxx should be indeed corrected to follow original HashCode() decription or removed if not used actually.

NCollection_Map misuse should be investigated within dedicated issue.

msv

2019-04-09 16:15

developer   ~0083578

NCollection_Map has got its behavior from TCollection_Map, it was so always.

git

2019-04-09 17:43

administrator   ~0083583

Branch CR30550 has been updated forcibly by tizmaylo.

SHA-1: f9902d092e07623b54fc3d7488e9b5c40fc93e8b

git

2019-04-09 17:45

administrator   ~0083584

Branch CR30550_1 has been created by tizmaylo.

SHA-1: d906feb9af0de05e2275a99fb0ed90848e3c6d25


Detailed log of new commits:

Author: tiv
Date: Tue Apr 9 17:38:48 2019 +0300

    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.

tizmaylo

2019-04-10 10:48

developer   ~0083596

Patch is ready for review: http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30550_1-master-TIV/view/ALL/

Main branch: CR30550

Branch with squashed commits: CR30550_1

msv

2019-04-10 11:26

developer   ~0083598

Reviewed.

bugmaster

2019-04-11 08:06

administrator   ~0083625

Last edited: 2019-04-11 08:18

branch has been tested as part of WEEK-15.
It causes errors of compilation on all platforms

http://jenkins-test-12.nnov.opencascade.com/view/IR-WEEK15/view/OCCT%20compile/

http://jenkins-test-08.nnov.opencascade.com/view/IR-WEEK15_IR-WEEK15/view/OCCT%20compile/

kgv

2019-04-11 10:31

developer   ~0083628

There is a merge conflict with patch for 0030618.
Please rebase the patch onto current IR (or CR30618) manually.

kgv

2019-04-11 10:49

developer   ~0083629

Please also revert unrelated cosmetic changes in the patch:

--- a/src/BOPTools/BOPTools_Parallel.hxx
+++ b/src/BOPTools/BOPTools_Parallel.hxx
@@ -57,8 +57,13 @@ class BOPTools_Parallel
     {
       static Standard_Integer HashCode(const Standard_ThreadId theKey,
                                        const Standard_Integer  Upper)
+      //! Computes a hash code for the given thread identifier, in the range [1, theUpperBound]
+      //! @param theThreadId the thread identifier which hash code is to be computed
+      //! @param theUpperBound the upper bound of the range a computing hash code must be within
+      //! @return a computed hash code, in the range [1, theUpperBound]
+      static Standard_Integer HashCode (const Standard_ThreadId theThreadId, const Standard_Integer theUpperBound)
       {
-        return ::HashCode((Standard_Size)theKey, Upper);
+        return ::HashCode (theThreadId, theUpperBound);
       }
 
       static Standard_Boolean IsEqual(const Standard_ThreadId theKey1,
@@ -94,7 +99,7 @@ class BOPTools_Parallel

 
-      Standard_Mutex::Sentry aLocker (myMutex);
+      Standard_Mutex::Sentry aLocker(myMutex);
..
@@ -114,7 +119,7 @@ class BOPTools_Parallel
     ContextFunctor& operator= (const ContextFunctor&);
 
   private:
-    TypeSolverVector& mySolverVector;
+    TypeSolverVector&      mySolverVector;
..
   };
@@ -173,7 +178,7 @@ public:
   //! Context dependent version
   template<class TypeSolverVector, class TypeContext>
   static void Perform (Standard_Boolean  theIsRunParallel,
-                       TypeSolverVector& theSolverVector,
+                       TypeSolverVector&      theSolverVector,
                        opencascade::handle<TypeContext>& theContext)
   {
..
-      aFunctor.SetContext (theContext);
+      aFunctor.SetContext(theContext);

git

2019-04-11 11:43

administrator   ~0083631

Branch CR30550_2 has been created by tizmaylo.

SHA-1: 98fd5ae264dfc0b4dc5c633616caced16cd2df07


Detailed log of new commits:

Author: tiv
Date: Thu Apr 11 10:56:04 2019 +0300

    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.

tizmaylo

2019-04-11 11:46

developer   ~0083632

Last edited: 2019-04-11 11:46

Changes from CR30550_1 are moved onto IR-WEEK15. The result is at the new branch CR30550_2.

git

2019-04-12 18:34

administrator   ~0083679

Branch CR30550_3 has been created by tizmaylo.

SHA-1: 0e858ba2677b051c1d2e17cdd2059e50371fb1a5


Detailed log of new commits:

Author: tiv
Date: Fri Apr 12 18:28:04 2019 +0300

    # VC9 compilation error is fixed

tizmaylo

2019-04-12 18:39

developer   ~0083680

VC9 compile error is fixed. Look at the new branch CR30550_3.

bugmaster

2019-04-13 14:50

administrator   ~0083688

Error of compilation
I removed it from IR-2019-04-13
http://jenkins-test-08.nnov.opencascade.com/view/IR-2019-04-12_IR-2019-04-12/view/OCCT%20compile/

git

2019-04-15 13:17

administrator   ~0083753

Branch CR30550_4 has been created by tizmaylo.

SHA-1: 4a8808952ae1be3c993a2c80460f69cb794cba72


Detailed log of new commits:

Author: tiv
Date: Mon Apr 15 13:11:11 2019 +0300

    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.

git

2019-04-15 13:18

administrator   ~0083754

Branch CR30550 has been updated forcibly by tizmaylo.

SHA-1: e5de62fbd430b28418fc9050ad3961aa03a7c3e7

tizmaylo

2019-04-15 18:29

developer   ~0083763

OCCT compilation of the branch CR30550_4 is needed to be performed on Windows-VC9 and Ubuntu-Android variants of compilers (e.g. OCCT-Windows-32-VC9-opt-compile and OCCT-Ubuntu-1604-32-Android-opt-compile).
Only compilation results are needed, not tests or something else.

bugmaster

2019-04-16 10:21

administrator   ~0083768

http://jenkins-test-08.nnov.opencascade.com/view/CR30550_4_master/view/OCCT%20compile/

If you think that it is OK i would like to test this fix on full set of tests to night

kgv

2019-04-16 10:37

developer   ~0083769

Last edited: 2019-04-16 10:49

 #include <pthread.h>
 typedef pthread_t Standard_ThreadId;
 
+//! Computes a hash code for the given thread identifier (that is actually an integer), in the range [1, theUpperBound]
+//! @param TheThreadId the type of the given thread identifier (it is Standard_ThreadId,
+//! and must not be the same as Standard_Size, because the overload of the HashCode function
+//! for Standard_Size type is already presented in Standard_Size.hxx)
+//! @param theThreadId the thread identifier which hash code is to be computed
+//! @param theUpperBound the upper bound of the range a computing hash code must be within
+//! @return a computed hash code, in the range [1, theUpperBound]
+template <typename TheThreadId>
+typename opencascade::std::enable_if<opencascade::std::is_same<TheThreadId, Standard_ThreadId>::value
+                                       && !opencascade::std::is_same<TheThreadId, Standard_Size>::value
+                                       && opencascade::std::is_convertible<TheThreadId, Standard_Size>::value,
+                                     Standard_Integer>::type
+HashCode (const TheThreadId theThreadId, const Standard_Integer theUpperBound)
+{
+  return ::HashCode (static_cast<Standard_Size> (theThreadId), theUpperBound);
+}
+


We can avoid all this mess with platform-dependent Standard_ThreadId, by defining it as Standard_Size and adding static-cast in the places, where it is generated.

This type is not documented to access actual thread object (and on Windows it is not HANDLE), the purpose of this type is identifying the thread by unique id, which Standard_Size would be applicable for considering that there is no known platform defining underlying system type larger than size_t (and no any reason for this - on Windows it is even 32-bit integer on 64-bit platform).

The only exception is awkward definitions of pthread_t like this, but we can just ignore such obsolete implementations:
typedef struct {
    void * p;                   /* Pointer to actual object */
    unsigned int x;             /* Extra information - reuse count etc */
} ptw32_handle_t;

typedef ptw32_handle_t pthread_t;


git

2019-04-16 12:55

administrator   ~0083783

Branch CR30550_4 has been updated forcibly by tizmaylo.

SHA-1: 8ab6abdb5167179dd4b40b55a92788b9f4281349

git

2019-04-16 12:55

administrator   ~0083784

Branch CR30550 has been updated by tizmaylo.

SHA-1: 40be9575c2fbb2ac9fb8ce1898eec80403666281


Detailed log of new commits:

Author: tiv
Date: Tue Apr 16 12:44:22 2019 +0300

    # A problem with HashCode function for Standard_ThreadId type on different platforms is probably fixed.

git

2019-04-16 14:02

administrator   ~0083787

Branch CR30550 has been updated forcibly by tizmaylo.

SHA-1: 73d1d3ce7a1b4c1847e1ff864675afbc9b9a52d4

git

2019-04-16 14:02

administrator   ~0083788

Branch CR30550_4 has been updated forcibly by tizmaylo.

SHA-1: 69c72aaacf059878c0fc2885b590355e95fc298d

git

2019-04-16 14:50

administrator   ~0083790

Branch CR30550 has been updated forcibly by tizmaylo.

SHA-1: 1f4e8b3c19072095051625d15985ccc8463f80c6

git

2019-04-16 14:50

administrator   ~0083791

Branch CR30550_4 has been updated forcibly by tizmaylo.

SHA-1: 12c8972c6dbc33e577a030af6a0f059ed09bd3fb

tizmaylo

2019-04-16 16:37

developer   ~0083799

Patch is ready for review: http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30550_4-master-TIV/view/ALL/

Main branch: CR30550

Branch with squashed commits: CR30550_4

bugmaster

2019-04-16 18:28

administrator   ~0083802

Combination -
OCCT branch : CR30550_4
master SHA - 12c8972c6dbc33e577a030af6a0f059ed09bd3fb
d67d4b811012eef8913d3c535c29654d0acf3c4c
Products branch : master SHA - bcb5483cf17c66425886b3ab24cc11049e73b75a
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian80-64:
OCCT
Total CPU difference: 16536.000000000025 / 16536.409999999894 [-0.00%]
Products
Total CPU difference: 10465.370000000034 / 10520.190000000048 [-0.52%]
Windows-64-VC14:
OCCT
Total CPU difference: 17940.75 / 17951.921875 [-0.06%]
Products
Total CPU difference: 11997.421875 / 12011.875 [-0.12%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

bugmaster

2019-04-16 20:28

administrator   ~0083805

Removed from IR-WEEK16 because error of compilation

[ 1%] Building CXX object src/TKernel/CMakeFiles/TKernel.dir/__/Standard/Standard_MMgrRaw.cxx.o
/Users/mnt/builds/IR-WEEK16/OCCT_SRC/src/Standard/Standard_ErrorHandler.cxx:50:10: error: cannot initialize return object of type 'Standard_ThreadId' (aka 'unsigned long') with an rvalue of type 'pthread_t _Nonnull' (aka '_opaque_pthread_t *')
  return pthread_self();
         ^~~~~~~~~~~~~~
1 error generated.

tizmaylo

2019-04-17 12:22

developer   ~0083822

Products compilation of the branch CR30550 (attention: it was forcibly updated) is needed to be performed on Windows-UWP platform using OCCT compiled with CR30550_4 branch changes.
Only compilation results are needed, not tests or something else.

bugmaster

2019-04-17 14:15

administrator   ~0083825

Results of testing

http://jenkins-test-08.nnov.opencascade.com/view/IR-WEEK16_IR-WEEK16-1/view/PRODUCTS%20compile/

git

2019-04-21 11:06

administrator   ~0083902

Branch CR30550_4 has been deleted by inv.

SHA-1: 12c8972c6dbc33e577a030af6a0f059ed09bd3fb

git

2019-04-21 11:06

administrator   ~0083903

Branch CR30550 has been deleted by inv.

SHA-1: 1f4e8b3c19072095051625d15985ccc8463f80c6

git

2019-04-21 11:06

administrator   ~0083905

Branch CR30550_3 has been deleted by inv.

SHA-1: 0e858ba2677b051c1d2e17cdd2059e50371fb1a5

git

2019-04-21 11:06

administrator   ~0083906

Branch CR30550_2 has been deleted by inv.

SHA-1: 98fd5ae264dfc0b4dc5c633616caced16cd2df07

git

2019-04-21 11:06

administrator   ~0083907

Branch CR30550_1 has been deleted by inv.

SHA-1: d906feb9af0de05e2275a99fb0ed90848e3c6d25

Related Changesets

occt: master 2b2be3fb

2019-03-28 09:42:41

tiv


Committer: bugmaster Details Diff
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.
Affected Issues
0030550
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

Issue History

Date Modified Username Field Change
2019-03-09 17:42 galbramc New Issue
2019-03-09 17:42 galbramc Assigned To => abv
2019-03-20 08:40 kgv Relationship added child of 0030557
2019-03-20 08:40 kgv Assigned To abv => tizmaylo
2019-03-20 08:40 kgv Status new => assigned
2019-03-20 08:40 kgv Summary Integer overflow in Standard_CString HashCodes => Coding - Integer overflow in Standard_CString HashCodes
2019-03-22 19:38 git Note Added: 0083202
2019-03-24 23:08 galbramc Note Added: 0083211
2019-03-25 11:01 tizmaylo Note Added: 0083215
2019-03-25 12:02 git Note Added: 0083220
2019-03-25 19:46 galbramc File Added: Standard_CString_HashCode.tgz
2019-03-25 19:50 galbramc Note Added: 0083225
2019-03-26 12:36 git Note Added: 0083230
2019-03-26 14:33 tizmaylo Note Added: 0083233
2019-03-26 14:46 galbramc Note Added: 0083235
2019-03-26 14:54 tizmaylo Note Added: 0083237
2019-03-26 14:55 tizmaylo Assigned To tizmaylo => kgv
2019-03-26 14:55 tizmaylo Status assigned => resolved
2019-03-26 15:14 tizmaylo Relationship added related to 0030608
2019-03-26 16:31 kgv Note Added: 0083244
2019-03-26 16:31 kgv Assigned To kgv => tizmaylo
2019-03-26 16:31 kgv Status resolved => assigned
2019-03-26 16:31 kgv Target Version => 7.4.0
2019-03-26 20:19 git Note Added: 0083260
2019-03-27 10:09 tizmaylo Note Added: 0083261
2019-03-27 10:09 tizmaylo Assigned To tizmaylo => kgv
2019-03-27 10:09 tizmaylo Status assigned => resolved
2019-03-27 12:03 kgv Note Added: 0083264
2019-03-27 12:03 kgv Assigned To kgv => tizmaylo
2019-03-27 12:03 kgv Status resolved => assigned
2019-03-27 12:04 kgv Note Edited: 0083264
2019-03-27 12:07 kgv Note Added: 0083265
2019-03-27 12:08 kgv Note Edited: 0083265
2019-03-28 12:49 git Note Added: 0083277
2019-03-28 14:41 tizmaylo Note Added: 0083279
2019-03-28 14:41 tizmaylo Assigned To tizmaylo => kgv
2019-03-28 14:41 tizmaylo Status assigned => resolved
2019-04-09 09:12 kgv Assigned To kgv => msv
2019-04-09 12:57 msv Note Added: 0083560
2019-04-09 12:57 msv Assigned To msv => tizmaylo
2019-04-09 12:57 msv Status resolved => assigned
2019-04-09 13:04 kgv Note Added: 0083561
2019-04-09 13:04 kgv Note Edited: 0083561
2019-04-09 13:11 msv Note Added: 0083564
2019-04-09 13:12 msv Assigned To tizmaylo => msv
2019-04-09 13:12 msv Status assigned => resolved
2019-04-09 13:12 msv Note Added: 0083565
2019-04-09 13:12 msv Assigned To msv => bugmaster
2019-04-09 13:12 msv Status resolved => reviewed
2019-04-09 13:17 kgv Note Added: 0083567
2019-04-09 13:17 kgv Assigned To bugmaster => tizmaylo
2019-04-09 13:17 kgv Status reviewed => assigned
2019-04-09 13:18 kgv Note Edited: 0083567
2019-04-09 16:15 msv Note Added: 0083578
2019-04-09 17:43 git Note Added: 0083583
2019-04-09 17:45 git Note Added: 0083584
2019-04-10 10:48 tizmaylo Note Added: 0083596
2019-04-10 10:48 tizmaylo Assigned To tizmaylo => msv
2019-04-10 10:48 tizmaylo Status assigned => resolved
2019-04-10 11:26 msv Note Added: 0083598
2019-04-10 11:26 msv Assigned To msv => bugmaster
2019-04-10 11:26 msv Status resolved => reviewed
2019-04-10 18:51 bugmaster Test case number => bugs/modalg_7/bug30597
2019-04-10 18:52 bugmaster Test case number bugs/modalg_7/bug30597 =>
2019-04-11 08:06 bugmaster Note Added: 0083625
2019-04-11 08:07 bugmaster Assigned To bugmaster => tizmaylo
2019-04-11 08:07 bugmaster Status reviewed => assigned
2019-04-11 08:18 bugmaster Note Edited: 0083625
2019-04-11 10:31 kgv Note Added: 0083628
2019-04-11 10:49 kgv Note Added: 0083629
2019-04-11 11:43 git Note Added: 0083631
2019-04-11 11:46 tizmaylo Note Added: 0083632
2019-04-11 11:46 tizmaylo Note Edited: 0083632
2019-04-11 11:58 tizmaylo Assigned To tizmaylo => bugmaster
2019-04-11 11:58 tizmaylo Status assigned => resolved
2019-04-11 11:58 tizmaylo Status resolved => reviewed
2019-04-12 18:34 git Note Added: 0083679
2019-04-12 18:39 tizmaylo Note Added: 0083680
2019-04-13 14:50 bugmaster Note Added: 0083688
2019-04-13 14:50 bugmaster Assigned To bugmaster => tizmaylo
2019-04-13 14:50 bugmaster Status reviewed => assigned
2019-04-15 13:17 git Note Added: 0083753
2019-04-15 13:18 git Note Added: 0083754
2019-04-15 18:29 tizmaylo Note Added: 0083763
2019-04-15 18:30 tizmaylo Assigned To tizmaylo => bugmaster
2019-04-15 18:30 tizmaylo Status assigned => feedback
2019-04-16 10:21 bugmaster Note Added: 0083768
2019-04-16 10:22 bugmaster Assigned To bugmaster => tizmaylo
2019-04-16 10:22 bugmaster Status feedback => assigned
2019-04-16 10:37 kgv Note Added: 0083769
2019-04-16 10:38 kgv Note Edited: 0083769
2019-04-16 10:49 kgv Note Edited: 0083769
2019-04-16 10:49 kgv Note Edited: 0083769
2019-04-16 12:55 git Note Added: 0083783
2019-04-16 12:55 git Note Added: 0083784
2019-04-16 14:02 git Note Added: 0083787
2019-04-16 14:02 git Note Added: 0083788
2019-04-16 14:50 git Note Added: 0083790
2019-04-16 14:50 git Note Added: 0083791
2019-04-16 16:37 tizmaylo Note Added: 0083799
2019-04-16 16:38 tizmaylo Assigned To tizmaylo => kgv
2019-04-16 16:38 tizmaylo Status assigned => resolved
2019-04-16 16:43 kgv Assigned To kgv => bugmaster
2019-04-16 16:43 kgv Status resolved => reviewed
2019-04-16 18:28 bugmaster Note Added: 0083802
2019-04-16 18:28 bugmaster Status reviewed => tested
2019-04-16 20:28 bugmaster Note Added: 0083805
2019-04-16 20:28 bugmaster Assigned To bugmaster => tizmaylo
2019-04-16 20:28 bugmaster Status tested => assigned
2019-04-16 21:42 bugmaster Assigned To tizmaylo => abv
2019-04-16 21:42 bugmaster Status assigned => resolved
2019-04-16 21:42 bugmaster Assigned To abv => bugmaster
2019-04-16 21:42 bugmaster Status resolved => reviewed
2019-04-16 21:43 bugmaster Status reviewed => tested
2019-04-17 12:22 tizmaylo Note Added: 0083822
2019-04-17 12:22 tizmaylo Status tested => feedback
2019-04-17 14:15 bugmaster Note Added: 0083825
2019-04-17 14:15 bugmaster Test case number => not required
2019-04-17 15:58 bugmaster Status feedback => tested
2019-04-21 10:55 bugmaster Changeset attached => occt master 2b2be3fb
2019-04-21 10:55 bugmaster Status tested => verified
2019-04-21 10:55 bugmaster Resolution open => fixed
2019-04-21 11:06 git Note Added: 0083902
2019-04-21 11:06 git Note Added: 0083903
2019-04-21 11:06 git Note Added: 0083905
2019-04-21 11:06 git Note Added: 0083906
2019-04-21 11:06 git Note Added: 0083907
2019-04-30 14:50 kgv Relationship added related to 0030551
2019-05-17 16:24 kgv Relationship added parent of 0030718
2019-05-20 12:42 kgv Relationship added parent of 0030720