From a63eb3cc37067aec494a9a3b9fbc5d8ea04684b3 Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Tue, 22 Aug 2017 18:28:08 +0200 Subject: [PATCH] base: don't free initial slab in destructor Issue #2505 --- repos/base/src/lib/base/slab.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/repos/base/src/lib/base/slab.cc b/repos/base/src/lib/base/slab.cc index cbfea202a0..979892d6cc 100644 --- a/repos/base/src/lib/base/slab.cc +++ b/repos/base/src/lib/base/slab.cc @@ -243,8 +243,12 @@ Slab::~Slab() return; /* free backing store */ - while (_num_blocks > 1) + while (_num_blocks > 1) { + /* never free the initial block */ + if (_curr_sb == _initial_sb) + _curr_sb = _curr_sb->next; _free_curr_sb(); + } /* release last block */ _release_backing_store(_curr_sb);