diff options
| author | Mattias Andrée <m@maandree.se> | 2026-05-15 20:53:25 +0200 |
|---|---|---|
| committer | Mattias Andrée <m@maandree.se> | 2026-05-15 20:53:25 +0200 |
| commit | 193d39d9b78a9e3c0c257b2e1e9f9dd4a7a13349 (patch) | |
| tree | c3b4eaf8df53babc7e37df4384d1be3be1cd9186 /libtest/libtest_free.c | |
| parent | Fix some minor issues (diff) | |
| download | librecrypt-193d39d9b78a9e3c0c257b2e1e9f9dd4a7a13349.tar.gz librecrypt-193d39d9b78a9e3c0c257b2e1e9f9dd4a7a13349.tar.bz2 librecrypt-193d39d9b78a9e3c0c257b2e1e9f9dd4a7a13349.tar.xz | |
Misc
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to 'libtest/libtest_free.c')
| -rw-r--r-- | libtest/libtest_free.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libtest/libtest_free.c b/libtest/libtest_free.c index 5592e0a..d46218e 100644 --- a/libtest/libtest_free.c +++ b/libtest/libtest_free.c @@ -39,12 +39,18 @@ libtest_free(void *ptr, enum libtest_zero_check zero_checking) assert(mem->origin != FROM_MMAP_ANON); /* Delist allocation */ + SPINLOCK(libtest_allocs_list_spinlock); if (!libtest_kill_malloc_tracking) { - SPINLOCK(libtest_allocs_list_spinlock); mem->prev->next = mem->next; mem->next->prev = mem->prev; - SPINUNLOCK(libtest_allocs_list_spinlock); } + for (i = 0u; i < libtest_npretends; i++) { + if (libtest_pretend_list[i] == ptr) { + libtest_pretend_list[i] = libtest_pretend_list[--libtest_npretends]; + break; + } + } + SPINUNLOCK(libtest_allocs_list_spinlock); /* Check memory is zeroed */ if (zero_checking && libtest_expect_zeroed && !mem->accept_leakage) { |
