talons

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

commit 9e4d6e44b4b9324109d5d1aa045a94332109cc96
parent bf4283e51f4cb8e6014dd9f0b54b2c7a42410aa6
Author: Andrej Kacian <ticho@claws-mail.org>
Date:   Sun, 14 Sep 2014 05:24:07 +0200

RSSyl: Do not use g_strsplit_set() to get the ID from message file, since the ID itself can contain < or > characters. Should fix bug #3282.

Diffstat:
Msrc/plugins/rssyl/parse822.c | 15++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/plugins/rssyl/parse822.c b/src/plugins/rssyl/parse822.c @@ -50,7 +50,7 @@ */ FeedItem *rssyl_parse_folder_item_file(gchar *path) { - gchar *contents, **lines, **line, **splid; + gchar *contents, **lines, **line, **splid, *tmp, *tmp2; GError *error = NULL; FeedItem *item; RFeedCtx *ctx; @@ -138,10 +138,15 @@ FeedItem *rssyl_parse_folder_item_file(gchar *path) /* ID */ if( !strcmp(line[0], "Message-ID") ) { - splid = g_strsplit_set(line[1], "<>", 3); - if( strlen(splid[1]) != 0 ) - feed_item_set_id(item, splid[1]); - g_strfreev(splid); + if (line[1][0] != '<' || line[1][strlen(line[1])-1] != '>') { + debug_print("RSSyl: malformed Message-ID, ignoring...\n"); + } else { + /* Get the ID from within < and >. */ + tmp = line[1] + 1; + tmp2 = g_strndup(tmp, strlen(tmp) - 1); + feed_item_set_id(item, tmp2); + g_free(tmp2); + } } /* Feed comments */