diff options
author | Jason Evans <jasone@canonware.com> | 2015-02-18 06:25:56 (GMT) |
---|---|---|
committer | Jason Evans <jasone@canonware.com> | 2015-02-18 06:25:56 (GMT) |
commit | 339c2b23b2d61993ac768afcc72af135662c6771 (patch) | |
tree | 7c4592a08594b2f927fde30b478b9c84e253a55d /include/jemalloc | |
parent | 47701b22ee7c0df5e99efa0fcdcf98b9ff805b59 (diff) | |
download | jemalloc-339c2b23b2d61993ac768afcc72af135662c6771.zip jemalloc-339c2b23b2d61993ac768afcc72af135662c6771.tar.gz jemalloc-339c2b23b2d61993ac768afcc72af135662c6771.tar.bz2 |
Fix chunk_unmap() to propagate dirty state.
Fix chunk_unmap() to propagate whether a chunk is dirty, and modify
dirty chunk purging to record this information so it can be passed to
chunk_unmap(). Since the broken version of chunk_unmap() claimed that
all chunks were clean, this resulted in potential memory corruption for
purging implementations that do not zero (e.g. MADV_FREE).
This regression was introduced by
ee41ad409a43d12900a5a3108f6c14f84e4eb0eb (Integrate whole chunks into
unused dirty page purging machinery.).
Diffstat (limited to 'include/jemalloc')
-rw-r--r-- | include/jemalloc/internal/chunk.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/jemalloc/internal/chunk.h b/include/jemalloc/internal/chunk.h index 96b9e15..8722dd0 100644 --- a/include/jemalloc/internal/chunk.h +++ b/include/jemalloc/internal/chunk.h @@ -47,7 +47,7 @@ void *chunk_alloc_default(void *new_addr, size_t size, size_t alignment, void chunk_record(arena_t *arena, extent_tree_t *chunks_szad, extent_tree_t *chunks_ad, bool dirty, void *chunk, size_t size); bool chunk_dalloc_default(void *chunk, size_t size, unsigned arena_ind); -void chunk_unmap(arena_t *arena, void *chunk, size_t size); +void chunk_unmap(arena_t *arena, bool dirty, void *chunk, size_t size); bool chunk_boot(void); void chunk_prefork(void); void chunk_postfork_parent(void); |