summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2013-12-17 23:14:36 (GMT)
committerJason Evans <jasone@canonware.com>2013-12-17 23:19:12 (GMT)
commit0d6c5d8bd0d866a0ce4ce321259cec65d6459821 (patch)
tree083566d27a62252feb2c329c9dee1ee4745a140e /include
parenteca367b77909ebd649fbd0430e1e9b80dded14e0 (diff)
downloadjemalloc-0d6c5d8bd0d866a0ce4ce321259cec65d6459821.zip
jemalloc-0d6c5d8bd0d866a0ce4ce321259cec65d6459821.tar.gz
jemalloc-0d6c5d8bd0d866a0ce4ce321259cec65d6459821.tar.bz2
Add quarantine unit tests.
Verify that freed regions are quarantined, and that redzone corruption is detected. Introduce a testing idiom for intercepting/replacing internal functions. In this case the replaced function is ordinarily a static function, but the idiom should work similarly for library-private functions.
Diffstat (limited to 'include')
-rw-r--r--include/jemalloc/internal/arena.h6
-rw-r--r--include/jemalloc/internal/private_symbols.txt2
2 files changed, 8 insertions, 0 deletions
diff --git a/include/jemalloc/internal/arena.h b/include/jemalloc/internal/arena.h
index e43aed1..4151751 100644
--- a/include/jemalloc/internal/arena.h
+++ b/include/jemalloc/internal/arena.h
@@ -405,7 +405,13 @@ void arena_tcache_fill_small(arena_t *arena, tcache_bin_t *tbin,
size_t binind, uint64_t prof_accumbytes);
void arena_alloc_junk_small(void *ptr, arena_bin_info_t *bin_info,
bool zero);
+#ifdef JEMALLOC_JET
+typedef void (arena_redzone_corruption_t)(void *, size_t, bool, size_t,
+ uint8_t);
+extern arena_redzone_corruption_t *arena_redzone_corruption_fptr;
+#endif
void arena_dalloc_junk_small(void *ptr, arena_bin_info_t *bin_info);
+void arena_quarantine_junk_small(void *ptr, size_t usize);
void *arena_malloc_small(arena_t *arena, size_t size, bool zero);
void *arena_malloc_large(arena_t *arena, size_t size, bool zero);
void *arena_palloc(arena_t *arena, size_t size, size_t alignment, bool zero);
diff --git a/include/jemalloc/internal/private_symbols.txt b/include/jemalloc/internal/private_symbols.txt
index 541e1b2..fae648c 100644
--- a/include/jemalloc/internal/private_symbols.txt
+++ b/include/jemalloc/internal/private_symbols.txt
@@ -50,8 +50,10 @@ arena_prof_ctx_set
arena_prof_promoted
arena_ptr_small_binind_get
arena_purge_all
+arena_quarantine_junk_small
arena_ralloc
arena_ralloc_no_move
+arena_redzone_corruption
arena_run_regind
arena_salloc
arena_stats_merge