Skip to content

3.3.1

Compare
Choose a tag to compare
@jasone jasone released this 18 Apr 16:35
· 2916 commits to dev since this release

This version fixes bugs that are typically encountered only when utilizing custom run-time options.

Bug fixes:

  • Fix a locking order bug that could cause deadlock during fork if heap
    profiling were enabled.
  • Fix a chunk recycling bug that could cause the allocator to lose track of
    whether a chunk was zeroed. On FreeBSD, NetBSD, and OS X, it could cause
    corruption if allocating via sbrk(2) (unlikely unless running with the
    "dss:primary" option specified). This was completely harmless on Linux
    unless using mlockall(2) (and unlikely even then, unless the
    --disable-munmap configure option or the "dss:primary" option was
    specified). This regression was introduced in 3.1.0 by the
    mlockall(2)/madvise(2) interaction fix.
  • Fix TLS-related memory corruption that could occur during thread exit if the
    thread never allocated memory. Only the quarantine and prof facilities were
    susceptible.
  • Fix two quarantine bugs:
    • Internal reallocation of the quarantined object array leaked the old
      array.
    • Reallocation failure for internal reallocation of the quarantined object
      array (very unlikely) resulted in memory corruption.
  • Fix Valgrind integration to annotate all internally allocated memory in a
    way that keeps Valgrind happy about internal data structure access.
  • Fix building for s390 systems.