From 7f7084c2cb64a1617746ac6c7bbdb773131593a7 Mon Sep 17 00:00:00 2001 From: Andrew Hlynskyi Date: Sun, 3 Sep 2023 05:29:48 +0300 Subject: [PATCH] chore(test): panic on zero pointer deallocs for alloc tracked scopes --- cli/src/tests/helpers/allocations.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/cli/src/tests/helpers/allocations.rs b/cli/src/tests/helpers/allocations.rs index 0d2331d3..43537633 100644 --- a/cli/src/tests/helpers/allocations.rs +++ b/cli/src/tests/helpers/allocations.rs @@ -83,6 +83,9 @@ fn record_alloc(ptr: *mut c_void) { } fn record_dealloc(ptr: *mut c_void) { + if ptr.is_null() { + panic!("Zero pointer deallocation!"); + } RECORDER.with(|recorder| { if recorder.enabled.load(SeqCst) { recorder @@ -107,11 +110,13 @@ unsafe extern "C" fn ts_record_calloc(count: usize, size: usize) -> *mut c_void } unsafe extern "C" fn ts_record_realloc(ptr: *mut c_void, size: usize) -> *mut c_void { - if !ptr.is_null() { - record_dealloc(ptr); - } let result = realloc(ptr, size); - record_alloc(result); + if ptr.is_null() { + record_alloc(result); + } else if ptr != result { + record_dealloc(ptr); + record_alloc(result); + } result }