aboutsummaryrefslogtreecommitdiff
path: root/include/jemalloc/internal/chunk.h
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2015-02-17 22:25:56 -0800
committerJason Evans <jasone@canonware.com>2015-02-17 22:25:56 -0800
commit339c2b23b2d61993ac768afcc72af135662c6771 (patch)
tree7c4592a08594b2f927fde30b478b9c84e253a55d /include/jemalloc/internal/chunk.h
parent47701b22ee7c0df5e99efa0fcdcf98b9ff805b59 (diff)
downloadjemalloc-339c2b23b2d61993ac768afcc72af135662c6771.tar.gz
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/internal/chunk.h')
-rw-r--r--include/jemalloc/internal/chunk.h2
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);