From 45a65144dd71ecc963a94d3dfd7bc01d4bde664a Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Tue, 17 Mar 2015 10:45:18 -0600 Subject: [PATCH 1/1] smalloc: don't crash on being passed a bad pointer This can happen if we pass sfree() memory not allocated by smalloc. Ignore it and log an error instead of triggering an assert(). Signed-off-by: Jens Axboe --- smalloc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/smalloc.c b/smalloc.c index b460d657..447d5c55 100644 --- a/smalloc.c +++ b/smalloc.c @@ -363,8 +363,12 @@ void sfree(void *ptr) global_read_unlock(); - assert(pool); - sfree_pool(pool, ptr); + if (pool) { + sfree_pool(pool, ptr); + return; + } + + log_err("smalloc: ptr %p not from smalloc pool\n", ptr); } static void *__smalloc_pool(struct pool *pool, size_t size) -- 2.25.1