talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 03565af05e5079d02c31202976a4f926ccd64a4b
parent a471705042de8306ee3b8e12b1774747f4f9f1ac
Author: wwp <subscript@free.fr>
Date:   Thu,  7 Oct 2021 09:10:21 +0200

Fix CID 1491229: dereference after null check.

Diffstat:
Msrc/folder.c | 16++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/folder.c b/src/folder.c @@ -414,7 +414,7 @@ void folder_item_remove(FolderItem *item) { GNode *node, *start_node; FolderUpdateData hookdata; - gchar *tags_file = NULL, *tags_dir = NULL; + gchar *tags_file = NULL; cm_return_if_fail(item != NULL); cm_return_if_fail(item->folder != NULL); @@ -441,15 +441,19 @@ void folder_item_remove(FolderItem *item) msgcache_destroy(item->cache); item->cache = NULL; } + tags_file = folder_item_get_tags_file(item); - if (tags_file) + if (tags_file) { + gchar *tags_dir; + claws_unlink(tags_file); - tags_dir = g_path_get_dirname(tags_file); - if (tags_dir) - rmdir(tags_dir); + tags_dir = g_path_get_dirname(tags_file); + if (tags_dir) + rmdir(tags_dir); + g_free(tags_dir); + } g_free(tags_file); - g_free(tags_dir); hookdata.folder = item->folder; hookdata.update_flags = FOLDER_TREE_CHANGED | FOLDER_REMOVE_FOLDERITEM;