Code

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 8c0bbec600152aee448cd34a7008eae4dadabcc0..e0b6ba2db7d586c46058a26833f0a2709eba0f01 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);