openvpn: free resource on error
[collectd.git] / src / openvpn.c
index 2c93a00..65440d5 100644 (file)
@@ -187,8 +187,6 @@ static int single_read (char *name, FILE *fh)
        post_compress = 0;
        pre_decompress = 0;
        post_decompress = 0;
-       overhead_rx = 0;
-       overhead_tx = 0;
 
        while (fgets (buffer, sizeof (buffer), fh) != NULL)
        {
@@ -619,6 +617,14 @@ static int openvpn_config (const char *key, const char *value)
 
                /* create a new vpn element since file, version and name are ok */
                temp = (vpn_status_t *) malloc (sizeof (vpn_status_t));
+               if (temp == NULL)
+               {
+                       char errbuf[1024];
+                       ERROR ("openvpn plugin: malloc failed: %s",
+                                       sstrerror (errno, errbuf, sizeof (errbuf)));
+                       sfree (status_file);
+                       return (1);
+               }
                temp->file = status_file;
                temp->version = status_version;
                temp->name = status_name;
@@ -627,7 +633,7 @@ static int openvpn_config (const char *key, const char *value)
                if (vpn_list == NULL)
                {
                        char errbuf[1024];
-                       ERROR ("openvpn plugin: malloc failed: %s",
+                       ERROR ("openvpn plugin: realloc failed: %s",
                                        sstrerror (errno, errbuf, sizeof (errbuf)));
 
                        sfree (temp->file);