diff --git a/lib/slab.c b/lib/slab.c index 5c414f9e..c3035b45 100644 --- a/lib/slab.c +++ b/lib/slab.c @@ -216,8 +216,11 @@ sl_new_head(slab *s) struct sl_obj *no; uint n = s->objs_per_slab; - h->first_free = o; - h->num_full = 0; + *h = (struct sl_head) { + .first_free = o, + .num_full = 0, + }; + while (n--) { o->slab = h;