ascent plugin: Fix a memory leak.
authorBruno Prémont <bonbons@linux-vserver.org>
Sat, 17 Jan 2009 10:40:53 +0000 (11:40 +0100)
committerFlorian Forster <octo@huhu.verplant.org>
Sat, 17 Jan 2009 10:40:53 +0000 (11:40 +0100)
According to libxml2 API doc, the string returned by
   xmlNodeListGetString()
must be freed by the user with
   xmlFree()

The attached patch adds the missing calls to xmlFree() for the ascent plugin.

src/ascent.c

index 8c0bbec..e0b6ba2 100644 (file)
@@ -271,10 +271,12 @@ static int ascent_xml_submit_gauge (xmlDoc *doc, xmlNode *node, /* {{{ */
     value = strtod (str_ptr, &end_ptr);
     if (str_ptr == end_ptr)
     {
+      xmlFree(str_ptr);
       ERROR ("ascent plugin: ascent_xml_submit_gauge: strtod failed.");
       return (-1);
     }
   }
+  xmlFree(str_ptr);
 
   return (ascent_submit_gauge (plugin_instance, type, type_instance, value));
 } /* }}} int ascent_xml_submit_gauge */
@@ -300,10 +302,12 @@ static int ascent_xml_read_int (xmlDoc *doc, xmlNode *node, /* {{{ */
     value = strtol (str_ptr, &end_ptr, 0);
     if (str_ptr == end_ptr)
     {
+      xmlFree(str_ptr);
       ERROR ("ascent plugin: ascent_xml_read_int: strtol failed.");
       return (-1);
     }
   }
+  xmlFree(str_ptr);
 
   *ret_value = value;
   return (0);