]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Free mdstat data structures properly.
authorNeilBrown <neilb@suse.de>
Wed, 7 Jan 2009 22:25:31 +0000 (09:25 +1100)
committerNeilBrown <neilb@suse.de>
Wed, 7 Jan 2009 22:25:31 +0000 (09:25 +1100)
In one case we called 'free' instead of 'mdstat_free'.
In others we didn't free at all.

Signed-off-by: NeilBrown <neilb@suse.de>
Monitor.c
mapfile.c
mdadm.c

index abc2dbd684b24cc578932bcef8bfbedc4e6c458b..2f0fe0cc5353db7cf78c93f2ab7d841448b4b35d 100644 (file)
--- a/Monitor.c
+++ b/Monitor.c
@@ -619,7 +619,7 @@ int Wait(char *dev)
                        free_mdstat(ms);
                        return rv;
                }
-               free(ms);
+               free_mdstat(ms);
                rv = 0;
                mdstat_wait(5);
        }
index 0d0aa398c7d90cd1cf9511e03085b71f9c7cfa0b..59cc6c6d355ae9369df8582b966479c84228c836 100644 (file)
--- a/mapfile.c
+++ b/mapfile.c
@@ -245,6 +245,7 @@ void RebuildMap(void)
                        break;
                }
        }
+       free_mdstat(mdstat);
        map_write(map);
        map_free(map);
 }
diff --git a/mdadm.c b/mdadm.c
index d680ea78017aebb6c364a95388b135d70203bc1d..6609bf22452f7802d280bc56ffcec5a8858d9045 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -1217,6 +1217,7 @@ int main(int argc, char *argv[])
                                                             export, test, homehost);
                                                put_md_name(name);
                                        }
+                                       free_mdstat(ms);
                                } else  if (devmode == 'S' && scan) {
                                        /* apply --stop to all devices in /proc/mdstat */
                                        /* Due to possible stacking of devices, repeat until
@@ -1249,6 +1250,7 @@ int main(int argc, char *argv[])
 
                                                        put_md_name(name);
                                                }
+                                               free_mdstat(ms);
                                        } while (!last && err);
                                        if (err) rv |= 1;
                                } else {