summaryrefslogtreecommitdiffstats
path: root/src/arena.c
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2015-09-25 03:07:17 (GMT)
committerJason Evans <jasone@canonware.com>2015-09-25 03:07:17 (GMT)
commite9192eacf8935e29fc62fddc2701f7942b1cc02c (patch)
treed20a95d9c02f1135e4352be0752372a8fc6073eb /src/arena.c
parent486d249fb4715fd3de679b6c2a04f7e657883111 (diff)
parent02709688e09325026be402b63400f88e587293d7 (diff)
downloadjemalloc-4.0.3.zip
jemalloc-4.0.3.tar.gz
jemalloc-4.0.3.tar.bz2
Merge branch 'dev'4.0.3
Diffstat (limited to 'src/arena.c')
-rw-r--r--src/arena.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/arena.c b/src/arena.c
index 7f4a6ca..3081519 100644
--- a/src/arena.c
+++ b/src/arena.c
@@ -2679,6 +2679,16 @@ arena_ralloc_large_grow(arena_t *arena, arena_chunk_t *chunk, void *ptr,
if (arena_run_split_large(arena, run, splitsize, zero))
goto label_fail;
+ if (config_cache_oblivious && zero) {
+ /*
+ * Zero the trailing bytes of the original allocation's
+ * last page, since they are in an indeterminate state.
+ */
+ assert(PAGE_CEILING(oldsize) == oldsize);
+ memset((void *)((uintptr_t)ptr + oldsize), 0,
+ PAGE_CEILING((uintptr_t)ptr) - (uintptr_t)ptr);
+ }
+
size = oldsize + splitsize;
npages = (size + large_pad) >> LG_PAGE;