Merge pull request #1710 from rpv-tomsk/perl-plugin-fixes
[collectd.git] / src / openvpn.c
index ec76a7a..85760e9 100644 (file)
@@ -712,17 +712,19 @@ static int openvpn_config (const char *key, const char *value)
                temp->version = status_version;
                temp->name = status_name;
 
-               vpn_list = (vpn_status_t **) realloc (vpn_list, (vpn_num + 1) * sizeof (vpn_status_t *));
-               if (vpn_list == NULL)
+               vpn_status_t **tmp_list = realloc (vpn_list, (vpn_num + 1) * sizeof (*vpn_list));
+               if (tmp_list == NULL)
                {
                        char errbuf[1024];
                        ERROR ("openvpn plugin: realloc failed: %s",
                                        sstrerror (errno, errbuf, sizeof (errbuf)));
 
+                       sfree (vpn_list);
                        sfree (temp->file);
                        sfree (temp);
                        return (1);
                }
+               vpn_list = tmp_list;
 
                vpn_list[vpn_num] = temp;
                vpn_num++;