From: Cesare Tirabassi Date: Tue, 4 Aug 2009 12:26:33 +0000 (+0200) Subject: Fix major memory leak in prss.c X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;h=fc54981da8532f6a71d2d64df1d868cad1a743c6;p=monky Fix major memory leak in prss.c --- diff --git a/src/prss.c b/src/prss.c index 2e1853a..a0bfaa9 100644 --- a/src/prss.c +++ b/src/prss.c @@ -41,6 +41,7 @@ void prss_parse_data(void *result, const char *xml_data) } prss_parse_doc(data, doc); + xmlFreeDoc(doc); } void prss_free(PRSS *data) @@ -48,7 +49,6 @@ void prss_free(PRSS *data) if (!data) { return; } - xmlFreeDoc(data->_data); free(data->version); free(data->items); } @@ -213,13 +213,9 @@ static inline int parse_rss_0_9x(PRSS *res, xmlNodePtr root) void prss_parse_doc(PRSS *result, xmlDocPtr doc) { - /* FIXME: doc shouldn't be freed after failure when called explicitly from - * program! */ - xmlNodePtr root = xmlDocGetRootElement(doc); prss_null(result); - result->_data = doc; do { if (root->type == XML_ELEMENT_NODE) { if (!strcmp((const char *) root->name, "RDF")) { diff --git a/src/prss.h b/src/prss.h index 53b8b4b..322c12c 100644 --- a/src/prss.h +++ b/src/prss.h @@ -30,7 +30,6 @@ typedef struct PRSS_Item_ { } PRSS_Item; typedef struct PRSS_ { - xmlDocPtr _data; char *version; char *title;