diff --git a/ChangeLog.md b/ChangeLog.md index 6c2ab8cc..532bd6df 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -25,6 +25,18 @@ Fixes: - Fixed `mdbx_check_fs_local()` for CDROM case on Windows. - Fixed nasty typo of typename which caused false `MDBX_CORRUPTED` error in a rare execution path, when the size of the thread-ID type not equal to 8. + - Fixed write-after-free memory corruption on latest `macOS` during finalization/cleanup of thread(s) that executed read transaction(s). + > The issue was suddenly discovered by a [CI](https://en.wikipedia.org/wiki/Continuous_integration) + > after adding an iteration with macOS 11 "Big Sur", and then reproduced on recent release of macOS 12 "Monterey". + > The issue was never noticed nor reported on macOS 10 "Catalina" nor others. + > Analysis shown that the problem caused by a change in the behavior of the system library (internals of dyld and pthread) + > during thread finalization/cleanup: now a memory allocated for a `__thread` variable(s) is released + > before execution of the registered Thread-Local-Storage destructor(s), + > thus a TLS-destructor will write-after-free just by legitime dereference any `__thread` variable. + > This is unexpected crazy-like behavior since the order of resources releasing/destroying + > is not the reverse of ones acquiring/construction order. Nonetheless such surprise + > is now workarounded by using atomic compare-and-swap operations on a 64-bit signatures/cookies. + - Fixed Elbrus/E2K LCC 1.26 compiler warnings (memory model for atomic operations, etc). Minors: @@ -33,6 +45,8 @@ Minors: - Added explicit error message from probe of no-support for `std::filesystem`. - Added contributors "score" table by `git fame` to generated docs. - Added `mdbx_assert_fail()` to public API (mostly for backtracing). + - Now C++20 concepts used/enabled only when `__cpp_lib_concepts >= 202002`. + - Don't provide nor report package information if used as a CMake subproject. -------------------------------------------------------------------------------