diff options
| author | Jason Evans <jasone@canonware.com> | 2015-09-25 03:07:17 (GMT) |
|---|---|---|
| committer | Jason Evans <jasone@canonware.com> | 2015-09-25 03:07:17 (GMT) |
| commit | e9192eacf8935e29fc62fddc2701f7942b1cc02c (patch) | |
| tree | d20a95d9c02f1135e4352be0752372a8fc6073eb /src/arena.c | |
| parent | 486d249fb4715fd3de679b6c2a04f7e657883111 (diff) | |
| parent | 02709688e09325026be402b63400f88e587293d7 (diff) | |
| download | jemalloc-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.c | 10 |
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; |
