From 163f731dd26a24c01322f603e026f8519e1817c6 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Fri, 3 Jul 2009 17:22:36 +0200 Subject: [PATCH 01/11] In feed_parse(), move a NULL pointer check before the pointer dereference. --- src/feed.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/feed.c b/src/feed.c index 5ee71b0..ca2c7e2 100644 --- a/src/feed.c +++ b/src/feed.c @@ -324,14 +324,14 @@ gboolean feed_parse(feedParserCtxtPtr ctxt) { cur = cur->next; } + if(!cur) + break; + if(!cur->name) { g_string_append(ctxt->feed->parseErrors, _("Invalid XML!")); break; } - if(!cur) - break; - /* determine the syndication format and start parser */ GSList *handlerIter = feedhandlers; while(handlerIter) { -- 1.6.3.3 From e554b49f106f754489160f516dedd8bd57ac8d08 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Fri, 3 Jul 2009 17:25:47 +0200 Subject: [PATCH 02/11] Add a NULL pointer check in migrate_load_from_cache(). --- src/migrate.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/migrate.c b/src/migrate.c index 8bde074..78552e8 100644 --- a/src/migrate.c +++ b/src/migrate.c @@ -189,7 +189,7 @@ migrate_load_from_cache (const gchar *sourceDir, const gchar *id) while (cur && xmlIsBlankNode (cur)) cur = cur->next; - if (!xmlStrcmp (cur->name, BAD_CAST"feed")) { + if (cur && !xmlStrcmp (cur->name, BAD_CAST"feed")) { xmlChar *version; if ((version = xmlGetProp (cur, BAD_CAST"version"))) { migrateFrom10 = xmlStrcmp (BAD_CAST FEED_CACHE_VERSION, version); -- 1.6.3.3 From 51819a1ea0d5c3566be5b98ded3f69e079e09f4c Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Fri, 3 Jul 2009 17:30:07 +0200 Subject: [PATCH 03/11] Remove write-only variable list2 in metadata_list_copy(). --- src/metadata.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/metadata.c b/src/metadata.c index 9d225bb..575d578 100644 --- a/src/metadata.c +++ b/src/metadata.c @@ -183,12 +183,12 @@ const gchar * metadata_list_get(GSList *metadata, const gchar *strid) { GSList * metadata_list_copy(GSList *list) { GSList *copy = NULL; - GSList *list2, *iter2, *iter = list; + GSList *iter2, *iter = list; struct pair *p; while(iter) { p = (struct pair*)iter->data; - iter2 = list2 = p->data; + iter2 = p->data; while(iter2) { copy = metadata_list_append(copy, p->strid, iter2->data); iter2 = iter2->next; -- 1.6.3.3 From bbb283b853c7b78127f853d673d336be429e905f Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Fri, 3 Jul 2009 17:46:35 +0200 Subject: [PATCH 04/11] Remove an apparently pointless xmlDocGetRootElement() call in script_config_save(). --- src/script.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/src/script.c b/src/script.c index 12e5bd6..8982167 100644 --- a/src/script.c +++ b/src/script.c @@ -113,7 +113,6 @@ static void script_config_save(void) { return; doc = xmlNewDoc("1.0"); - rootNode = xmlDocGetRootElement(doc); rootNode = xmlNewDocNode(doc, NULL, "scripts", NULL); xmlDocSetRootElement(doc, rootNode); -- 1.6.3.3 From 8f627ff80ac88bbc327b3c395a590ae4eacf561d Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Fri, 3 Jul 2009 17:47:30 +0200 Subject: [PATCH 05/11] Remove an apparently pointless xmlDocGetRootElement() call in node_to_xml(). --- src/node.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/src/node.c b/src/node.c index 97df43e..686cdb5 100644 --- a/src/node.c +++ b/src/node.c @@ -376,7 +376,6 @@ static xmlDocPtr node_to_xml(nodePtr node) { gchar *tmp; doc = xmlNewDoc("1.0"); - rootNode = xmlDocGetRootElement(doc); rootNode = xmlNewDocNode(doc, NULL, "node", NULL); xmlDocSetRootElement(doc, rootNode); -- 1.6.3.3 From f0a32ea0c10ac5a6d22d3b9a0a93683b8497cd71 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Fri, 3 Jul 2009 17:48:25 +0200 Subject: [PATCH 06/11] Remove an apparently pointless xmlDocGetRootElement() call in feed_to_xml(). --- src/feed.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/src/feed.c b/src/feed.c index ca2c7e2..ac59ddd 100644 --- a/src/feed.c +++ b/src/feed.c @@ -450,7 +450,6 @@ feed_to_xml (nodePtr node, xmlNodePtr feedNode) if (!feedNode) { doc = xmlNewDoc ("1.0"); - feedNode = xmlDocGetRootElement (doc); feedNode = xmlNewDocNode (doc, NULL, "feed", NULL); xmlDocSetRootElement (doc, feedNode); } -- 1.6.3.3 From 8ac2e24e5a0af9fea0370b2479c2a1839d97c626 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Fri, 3 Jul 2009 17:55:05 +0200 Subject: [PATCH 07/11] In google_source_merge_feed(), don't use title or id undefined if xpath_find() fails. --- src/fl_sources/google_source.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/src/fl_sources/google_source.c b/src/fl_sources/google_source.c index 45f9401..5fac29e 100644 --- a/src/fl_sources/google_source.c +++ b/src/fl_sources/google_source.c @@ -76,7 +76,8 @@ google_source_merge_feed(xmlNodePtr match, gpointer user_data) nodePtr node; GSList *iter; xmlNodePtr xml; - xmlChar *title, *id; + xmlChar *title = NULL; + xmlChar *id = NULL; xml = xpath_find (match, "./string[@name='title']"); if (xml) -- 1.6.3.3 From 57a78fa40828aa7a517d55feb4f27597c0b7a5c5 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Fri, 3 Jul 2009 17:58:31 +0200 Subject: [PATCH 08/11] If the result->data check fails in google_source_login_cb(), make sure tmp is defined anyway. --- src/fl_sources/google_source.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/fl_sources/google_source.c b/src/fl_sources/google_source.c index 5fac29e..b58fb06 100644 --- a/src/fl_sources/google_source.c +++ b/src/fl_sources/google_source.c @@ -157,7 +157,7 @@ static void google_source_login_cb (nodePtr node, const struct updateResult * const result, updateFlags flags) { readerPtr reader = (readerPtr)node->data; - gchar *tmp; + gchar *tmp = NULL; GTimeVal now; debug0 (DEBUG_UPDATE, "google login processing..."); -- 1.6.3.3 From 4ff57f69f2b3581350631e82b3b2aa282d33365f Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Fri, 3 Jul 2009 18:02:52 +0200 Subject: [PATCH 09/11] Remove a pointless assignment in liferea_htmlview_launch_URL(). --- src/ui/ui_htmlview.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/src/ui/ui_htmlview.c b/src/ui/ui_htmlview.c index 0480876..c171bd3 100644 --- a/src/ui/ui_htmlview.c +++ b/src/ui/ui_htmlview.c @@ -329,7 +329,6 @@ liferea_htmlview_launch_URL (LifereaHtmlView *htmlview, const gchar *url, gint l nodeid = strstr (url, "://"); if (nodeid) { nodeid += 3; - itemnr = nodeid; itemnr = strchr (nodeid, '-'); if (itemnr) { itemPtr item; -- 1.6.3.3 From a358c157b6d6f5c59cb74b0e6ae9a0941b960635 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Fri, 3 Jul 2009 18:09:12 +0200 Subject: [PATCH 10/11] Remove dead code in atom10_parse_person_construct(). --- src/parsers/atom10.c | 9 +-------- 1 files changed, 1 insertions(+), 8 deletions(-) diff --git a/src/parsers/atom10.c b/src/parsers/atom10.c index efc9c1e..f1e1439 100644 --- a/src/parsers/atom10.c +++ b/src/parsers/atom10.c @@ -206,7 +206,6 @@ static gchar* atom10_parse_text_construct(xmlNodePtr cur, gboolean htmlified) { static gchar * atom10_parse_person_construct(xmlNodePtr cur) { gchar *tmp = NULL; gchar *name = NULL, *uri = NULL, *email = NULL; - gboolean invalid = FALSE; g_assert(NULL != cur); cur = cur->xmlChildrenNode; @@ -223,8 +222,6 @@ static gchar * atom10_parse_person_construct(xmlNodePtr cur) { } if (xmlStrEqual(cur->name, BAD_CAST"email")) { - if (email != NULL) - invalid = TRUE; g_free(email); tmp = common_utf8_fix(xmlNodeListGetString(cur->doc, cur->xmlChildrenNode, 1)); email = g_strdup_printf(" - %s", tmp, tmp); @@ -232,8 +229,6 @@ static gchar * atom10_parse_person_construct(xmlNodePtr cur) { } if (xmlStrEqual(cur->name, BAD_CAST"uri")) { - if (uri == NULL) - invalid = TRUE; g_free(uri); tmp = common_utf8_fix(xmlNodeListGetString(cur->doc, cur->xmlChildrenNode, 1)); uri = g_strdup_printf(" (Website)", tmp); @@ -244,10 +239,8 @@ static gchar * atom10_parse_person_construct(xmlNodePtr cur) { } cur = cur->next; } - if (name == NULL) { - invalid = TRUE; + if (name == NULL) name = g_strdup(_("Invalid Atom feed: unknown author")); - } tmp = g_strdup_printf("%s%s%s", name, uri == NULL ? "" : uri, email == NULL ? "" : email); g_free(uri); g_free(email); -- 1.6.3.3 From f4a8ce0eedaf07a9290ff29e9b5ede0d014d25c0 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Fri, 3 Jul 2009 18:12:40 +0200 Subject: [PATCH 11/11] Remove write-only variable tmpstr in DownloadFeed(). --- src/net/netio.c | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-) diff --git a/src/net/netio.c b/src/net/netio.c index 26d9dcd..decccb2 100644 --- a/src/net/netio.c +++ b/src/net/netio.c @@ -1164,7 +1164,6 @@ char * DownloadFeed (char * url, struct feed_request * cur_ptr, int suppressoutp char *tmphost; char *freeme; char *returndata; - char *tmpstr; enum netio_proto proto = NETIO_PROTO_INVALID; xmlURIPtr uri; @@ -1202,10 +1201,8 @@ char * DownloadFeed (char * url, struct feed_request * cur_ptr, int suppressoutp } /* If tmphost contains an '@', extract username and pwd. */ - if (strchr (tmphost, '@') != NULL) { - tmpstr = tmphost; + if (strchr (tmphost, '@') != NULL) strsep (&tmphost, "@"); - } host = g_strdup (tmphost); -- 1.6.3.3