1. 02 May, 2016 - 5 commits
  2. 01 May, 2016 - 1 commit
    • Marc Mutz's avatar
      Fix UB (data race) in Q_GLOBAL_STATIC · 54d95d09
      Marc Mutz authored
      
      The store to guard in the inner function's critical
      section was not synchronized-with the load at the
      start of the function:
      
          T1                    T2
          guard.load()
          mutex.lock()
          guard.load()
          d = new Type
          guard.store()
                                guard.load()
                                // use d
          mutex.unlock()
      
      The use of d in T2 does not synchronize with
      the write to d in T1 -> data race -> UB.
      
      Fix by storing with release memory ordering,
      so that the guard.load() in T2 synchronizes
      with the guard.store() in T1.
      
      Change-Id: I5c1cd1fa097c6397cb0b48b0d8e8012f95978558
      Reviewed-by: default avatarThiago Macieira <thiago.macieira@intel.com>
      Reviewed-by: default avatarOlivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
      54d95d09
  3. 30 Apr, 2016 - 4 commits
  4. 29 Apr, 2016 - 6 commits
  5. 28 Apr, 2016 - 13 commits
  6. 27 Apr, 2016 - 11 commits