From: Timo Sirainen Date: Fri, 20 Dec 2024 08:35:39 +0000 (+0200) Subject: mdbox: Fix crash in storage destroy() with partially finished create() X-Git-Tag: 2.4.0~59 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=47bff06fe008e01c365034b6e42d0f4db3df5778;p=thirdparty%2Fdovecot%2Fcore.git mdbox: Fix crash in storage destroy() with partially finished create() --- 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);