summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2009-09-24 06:52:06 -0700
committerDan Williams <dan.j.williams@intel.com>2009-09-24 06:52:06 -0700
commitf5df5d69a78b03b7c843e3642725381fc9c76b95 (patch)
tree5be2901b4ae6f3a9e5e02a512d5ab85ca29a07c8
parentcf53434e5ca40f169afb8064b90bdd6bd7987f28 (diff)
downloadmdadm-f5df5d69a78b03b7c843e3642725381fc9c76b95.tar.gz
mdmon: fix freeing unallocated memory
mdmon was creating a supertype struct with malloc, and thus not necessarily getting zero-d memory. This was causing it to segfault when called like this from the initrd: /sbin/mdmon /proc/mdstat /sysroot The problem was that load_super_imsm would get called on the non-zero'd super struct, whcih in turn calls free_super_imsm, which checks st->sb, which should be zero but isn't and then starts freeing bogus memory. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r--mdmon.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mdmon.c b/mdmon.c
index 37f97af..31994d8 100644
--- a/mdmon.c
+++ b/mdmon.c
@@ -395,7 +395,7 @@ int mdmon(char *devname, int devnum, int scan, char *switchroot)
} else
pfd[0] = pfd[1] = -1;
- container = malloc(sizeof(*container));
+ container = calloc(1, sizeof(*container));
container->devnum = devnum;
container->devname = devname;
container->arrays = NULL;