commit b629b57eb9d511fe15e1b418e7ed674e0764a65a
parent cab9f7c7a3ec9134197188dbeacb1b2b9e6c19ec
Author: Andrej Kacian <ticho@claws-mail.org>
Date: Thu, 25 Apr 2019 21:38:10 +0200
Fix a memory leak in rssyl_add_item()
Diffstat:
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/src/plugins/rssyl/rssyl.c b/src/plugins/rssyl/rssyl.c
@@ -811,7 +811,7 @@ static gint rssyl_add_msgs(Folder *folder, FolderItem *dest, GSList *file_list,
return dest->last_num;
}
-static gint rssyl_add_msg(Folder *folder, FolderItem *dest, const gchar *file,
+gint rssyl_add_msg(Folder *folder, FolderItem *dest, const gchar *file,
MsgFlags *flags)
{
GSList file_list;
diff --git a/src/plugins/rssyl/rssyl_add_item.c b/src/plugins/rssyl/rssyl_add_item.c
@@ -46,6 +46,9 @@
#include "rssyl_parse_feed.h"
#include "strutils.h"
+gint rssyl_add_msg(Folder *folder, FolderItem *dest, const gchar *file,
+ MsgFlags *flags);
+
/* rssyl_cb_feed_compare()
*
* GCompareFunc function called by glib2's g_slist_find_custom().
@@ -560,10 +563,15 @@ void rssyl_add_item(RFolderItem *ritem, FeedItem *feed_item)
flags->perm_flags = MSG_NEW | MSG_UNREAD;
flags->tmp_flags = 0;
- d = folder_item_add_msg(&ritem->item, template, flags, TRUE);
- g_free(template);
+ d = rssyl_add_msg(ritem->item.folder, &ritem->item, template, flags);
+
g_free(flags);
+ if (claws_unlink(template) < 0)
+ FILE_OP_ERROR(template, "unlink");
+
+ g_free(template);
+
ctx = g_new0(RFeedCtx, 1);
ctx->path = (gpointer)g_strdup_printf("%s%c%d", dirname,
G_DIR_SEPARATOR, d);
@@ -583,5 +591,5 @@ void rssyl_add_item(RFolderItem *ritem, FeedItem *feed_item)
}
}
- debug_print("RSSyl: folder_item_add_msg(): %d\n", d);
+ debug_print("RSSyl: rssyl_add_msg(): %d\n", d);
}