talons

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

commit 7d4d2199593a85aefee2fb3d9a6645451c35196a
parent d405b9c5472922f089c200eae12d27911950f358
Author: Andrej Kacian <ticho@claws-mail.org>
Date:   Tue, 30 Apr 2019 23:03:03 +0200

Fix a memory corruption bug in RSSyl's feed_item_copy()

Diffstat:
Msrc/plugins/rssyl/libfeed/feeditem.c | 2+-
Msrc/plugins/rssyl/libfeed/feeditemenclosure.c | 9+++++++++
Msrc/plugins/rssyl/libfeed/feeditemenclosure.h | 2++
3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/plugins/rssyl/libfeed/feeditem.c b/src/plugins/rssyl/libfeed/feeditem.c @@ -344,7 +344,7 @@ FeedItem *feed_item_copy(FeedItem *item) nitem->comments_url = g_strdup(item->comments_url); nitem->parent_id = g_strdup(item->parent_id); - nitem->enclosure = g_memdup(item->enclosure, sizeof(FeedItemEnclosure)); + nitem->enclosure = feed_item_enclosure_copy(item->enclosure); nitem->date_published = item->date_published; nitem->date_modified = item->date_modified; diff --git a/src/plugins/rssyl/libfeed/feeditemenclosure.c b/src/plugins/rssyl/libfeed/feeditemenclosure.c @@ -98,3 +98,12 @@ void feed_item_enclosure_set_size(FeedItemEnclosure *enclosure, gulong size) enclosure->size = size; } + +FeedItemEnclosure *feed_item_enclosure_copy(FeedItemEnclosure *enclosure) +{ + if (enclosure == NULL) + return NULL; + + return feed_item_enclosure_new(enclosure->url, enclosure->type, + enclosure->size); +} diff --git a/src/plugins/rssyl/libfeed/feeditemenclosure.h b/src/plugins/rssyl/libfeed/feeditemenclosure.h @@ -40,4 +40,6 @@ void feed_item_enclosure_set_type(FeedItemEnclosure *enclosure, gchar *type); gulong feed_item_enclosure_get_size(FeedItemEnclosure *enclosure); void feed_item_enclosure_set_size(FeedItemEnclosure *enclosure, gulong size); +FeedItemEnclosure *feed_item_enclosure_copy(FeedItemEnclosure *enclosure); + #endif /* __FEEDITEMENCLOSURE_H */