mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-07-23 21:23:06 +00:00
Report the correct and wrong sizes on sized dealloc bug detection.
This commit is contained in:
@@ -2751,7 +2751,9 @@ maybe_check_alloc_ctx(tsd_t *tsd, void *ptr, emap_alloc_ctx_t *alloc_ctx) {
|
||||
&dbg_ctx);
|
||||
if (alloc_ctx->szind != dbg_ctx.szind) {
|
||||
safety_check_fail_sized_dealloc(
|
||||
/* current_dealloc */ true, ptr);
|
||||
/* current_dealloc */ true, ptr,
|
||||
/* true_size */ sz_size2index(dbg_ctx.szind),
|
||||
/* input_size */ sz_size2index(alloc_ctx->szind));
|
||||
return true;
|
||||
}
|
||||
if (alloc_ctx->slab != dbg_ctx.slab) {
|
||||
@@ -2800,9 +2802,13 @@ isfree(tsd_t *tsd, void *ptr, size_t usize, tcache_t *tcache, bool slow_path) {
|
||||
|
||||
if (config_opt_safety_checks) {
|
||||
/* Small alloc may have !slab (sampled). */
|
||||
if (alloc_ctx.szind != sz_size2index(usize)) {
|
||||
safety_check_fail_sized_dealloc(true,
|
||||
ptr);
|
||||
if (unlikely(alloc_ctx.szind !=
|
||||
sz_size2index(usize))) {
|
||||
safety_check_fail_sized_dealloc(
|
||||
/* current_dealloc */ true, ptr,
|
||||
/* true_size */ sz_index2size(
|
||||
alloc_ctx.szind),
|
||||
/* input_size */ usize);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user