]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
close some memory leaks
authorDan Williams <dan.j.williams@intel.com>
Thu, 15 May 2008 06:48:56 +0000 (16:48 +1000)
committerNeil Brown <neilb@suse.de>
Thu, 15 May 2008 06:48:56 +0000 (16:48 +1000)
From: Dan Williams <dan.j.williams@intel.com>

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
managemon.c
mdstat.c

index 230194688ab35cea405be75b1e20dd1a531658aa..c5ba2f4c40a7b4d88069f889a1723e9018212fae 100644 (file)
@@ -259,6 +259,7 @@ static void manage_new(struct mdstat_ent *mdstat,
        new->sync_pos_fd = sysfs_open(new->devnum, NULL, "sync_completed");
        new->sync_pos = 0;
 
+       sysfs_free(mdi);
        // finds and compares.
        if (container->ss->open_new(container, new, inst) < 0) {
                // FIXME close all those files
@@ -377,6 +378,8 @@ void do_manager(struct supertype *container)
 
                read_sock(container);
 
+               free_mdstat(mdstat);
+
                mdstat_wait_fd(container->sock);
        } while(1);
 }
index c75260e83d6af76a0b919795d74e2e1e7f06ef40..a65e7c3ab49b2362aa5a961feecaeec2ecfcf046 100644 (file)
--- a/mdstat.c
+++ b/mdstat.c
@@ -95,6 +95,7 @@ void free_mdstat(struct mdstat_ent *ms)
                if (ms->dev) free(ms->dev);
                if (ms->level) free(ms->level);
                if (ms->pattern) free(ms->pattern);
+               if (ms->metadata_version) free(ms->metadata_version);
                t = ms;
                ms = ms->next;
                free(t);