From 923a6644b206f70435c3d01b93b6880701938b49 Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Thu, 27 May 2021 10:35:33 +0200 Subject: [PATCH] Fixed memory poisoning in slab --- lib/slab.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/slab.c b/lib/slab.c index b0a01ae7..8d16c433 100644 --- a/lib/slab.c +++ b/lib/slab.c @@ -269,6 +269,9 @@ no_partial: goto okay; } h = alloc_page(); +#ifdef POISON + memset(h, 0xba, get_page_size()); +#endif ASSERT_DIE(SL_GET_HEAD(h) == h); memset(h, 0, s->head_size); add_head(&s->partial_heads, &h->n); @@ -324,7 +327,12 @@ sl_free(slab *s, void *oo) { rem_node(&h->n); if (s->num_empty_heads >= MAX_EMPTY_HEADS) + { +#ifdef POISON + memset(h, 0xde, get_page_size()); +#endif free_page(h); + } else { add_head(&s->empty_heads, &h->n);