memtx: fix 'use after free' of garbage collected MVCC stories
`directly_replaced` stories can potentially get garbage collected in `memtx_tx_handle_gap_write`, which is unexpected and leads to 'use after free': in order to fix this, limit garbage collection points only to external API calls. Wrap all possible garbage collection points with explicit warnings (see c9981a56). Closes #7449 NO_DOC=bugfix
Showing
- changelogs/unreleased/gh-7449-tuple-is-dirty-assertion-on-replace.md 4 additions, 0 deletions...unreleased/gh-7449-tuple-is-dirty-assertion-on-replace.md
- src/box/memtx_bitset.cc 2 additions, 0 deletionssrc/box/memtx_bitset.cc
- src/box/memtx_hash.cc 12 additions, 0 deletionssrc/box/memtx_hash.cc
- src/box/memtx_rtree.cc 4 additions, 0 deletionssrc/box/memtx_rtree.cc
- src/box/memtx_tree.cc 8 additions, 0 deletionssrc/box/memtx_tree.cc
- src/box/memtx_tx.c 20 additions, 11 deletionssrc/box/memtx_tx.c
- src/box/memtx_tx.h 47 additions, 0 deletionssrc/box/memtx_tx.h
- test/box-luatest/gh_7449_tuple_is_dirty_assertion_on_replace_test.lua 84 additions, 0 deletions...test/gh_7449_tuple_is_dirty_assertion_on_replace_test.lua
Loading
Please register or sign in to comment