From: NeilBrown Date: Wed, 7 Jan 2009 22:25:31 +0000 (+1100) Subject: Free mdstat data structures properly. X-Git-Tag: mdadm-2.6.9~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=89a10d84cb76492b7d8ea96d0a206b54702bcaff;p=thirdparty%2Fmdadm.git Free mdstat data structures properly. In one case we called 'free' instead of 'mdstat_free'. In others we didn't free at all. Signed-off-by: NeilBrown --- diff --git a/Monitor.c b/Monitor.c index abc2dbd6..2f0fe0cc 100644 --- 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); } diff --git a/mapfile.c b/mapfile.c index 0d0aa398..59cc6c6d 100644 --- 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 d680ea78..6609bf22 100644 --- 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 {