From 2d168b0516f7f1a70f8dba262d2ea8bbd4018b95 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Fri, 24 Aug 2018 04:51:52 -0400 Subject: [PATCH] check for double free slightly earlier --- malloc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/malloc.c b/malloc.c index 0832937..3263371 100644 --- a/malloc.c +++ b/malloc.c @@ -387,6 +387,10 @@ static void slab_free(void *p) { fatal_error("invalid unaligned free"); } + if (!get_slot(metadata, slot)) { + fatal_error("double free"); + } + if (!has_free_slots(slots, metadata)) { metadata->next = c->partial_slabs; metadata->prev = NULL; @@ -397,9 +401,6 @@ static void slab_free(void *p) { c->partial_slabs = metadata; } - if (!get_slot(metadata, slot)) { - fatal_error("double free"); - } clear_slot(metadata, slot); memset(p, 0, size);