From fac1337eb8c7b0923a1433cd54de51c9d26f8db5 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 20 Dec 2024 10:35:39 +0200 Subject: [PATCH] mdbox: Fix crash in storage destroy() with partially finished create() --- src/lib-storage/index/dbox-multi/mdbox-file.c | 2 ++ src/lib-storage/index/dbox-multi/mdbox-map.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/lib-storage/index/dbox-multi/mdbox-file.c b/src/lib-storage/index/dbox-multi/mdbox-file.c index a620717b79..16c68818ce 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-file.c +++ b/src/lib-storage/index/dbox-multi/mdbox-file.c @@ -43,6 +43,8 @@ void mdbox_files_free(struct mdbox_storage *storage) struct mdbox_file *const *files; unsigned int i, count; + if (!array_is_created(&storage->open_files)) + return; files = array_get(&storage->open_files, &count); for (i = 0; i < count; i++) dbox_file_free(&files[i]->file); diff --git a/src/lib-storage/index/dbox-multi/mdbox-map.c b/src/lib-storage/index/dbox-multi/mdbox-map.c index 0542f6642b..e886d7f9e7 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-map.c +++ b/src/lib-storage/index/dbox-multi/mdbox-map.c @@ -93,6 +93,8 @@ void mdbox_map_deinit(struct mdbox_map **_map) { struct mdbox_map *map = *_map; + if (map == NULL) + return; *_map = NULL; mdbox_map_deinit_cleanup(map); -- 2.47.3