summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--freelist.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/freelist.h b/freelist.h
index 69ef976..6a642d7 100644
--- a/freelist.h
+++ b/freelist.h
@@ -2,6 +2,7 @@
#define FREELIST_H
#include "arena.h"
+#include <string.h>
#define FREELIST_NEW(fl, a)\
(__typeof__(*(fl)))freelist_new((void**)(fl), sizeof(**(fl)), _Alignof(__typeof__(**(fl))), a)
@@ -14,7 +15,7 @@ static inline void *freelist_new(void **fl, size_t sz, size_t align, Arena *a) {
void *p = *fl;
void *next = *(void**)p;
*fl = next;
- return p;
+ return memset(p, 0, sz);
} else {
/* must pad and align for ptr to next in freelist */
if (sz < sizeof(void *)) sz = sizeof(void *);