commit bfc55f7a4e6fe27aa9fa3086dc5930bad52943bb
parent 6a99577ab05c39eec8674af6c7786b5e1fd4b6a2
Author: Andrej Kacian <ticho@claws-mail.org>
Date: Tue, 23 Apr 2019 22:31:31 +0200
Fix a memory leak in rssyl_add_item()
Diffstat:
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/plugins/rssyl/rssyl_add_item.c b/src/plugins/rssyl/rssyl_add_item.c
@@ -379,6 +379,7 @@ void rssyl_add_item(RFolderItem *ritem, FeedItem *feed_item)
atoi(pathbasename));
g_free(pathbasename);
oldperm_flags = msginfo->flags.perm_flags;
+ procmsg_msginfo_free(&msginfo);
ritem->items = g_slist_remove(ritem->items, old_item);
if (g_unlink(ctx->path) != 0) {
@@ -575,9 +576,11 @@ void rssyl_add_item(RFolderItem *ritem, FeedItem *feed_item)
* doesn't want to see it unread because of the change. */
if (dif != EXISTS_NEW) {
if (!(oldperm_flags & MSG_UNREAD) && (ritem->silent_update == 2
- || (ritem->silent_update == 1 && dif == EXISTS_CHANGED_TEXTONLY)))
- procmsg_msginfo_unset_flags(
- folder_item_get_msginfo((FolderItem *)ritem, d), MSG_NEW | MSG_UNREAD, 0);
+ || (ritem->silent_update == 1 && dif == EXISTS_CHANGED_TEXTONLY))) {
+ msginfo = folder_item_get_msginfo((FolderItem *)ritem, d);
+ procmsg_msginfo_unset_flags(msginfo, MSG_NEW | MSG_UNREAD, 0);
+ procmsg_msginfo_free(&msginfo);
+ }
}
debug_print("RSSyl: folder_item_add_msg(): %d\n", d);