Fix CID 1491229: dereference after null check.
authorwwp <subscript@free.fr>
Thu, 7 Oct 2021 07:10:21 +0000 (09:10 +0200)
committerwwp <subscript@free.fr>
Thu, 7 Oct 2021 07:10:21 +0000 (09:10 +0200)
src/folder.c

index c763eaf384a11aeeecc8d336291147b254886dbc..97c71390e899c789c1a697df9d92f87181180301 100644 (file)
@@ -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;