diff options
author | Hans de Goede <hdegoede@redhat.com> | 2009-09-24 15:52:06 +0200 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2009-09-24 15:52:06 +0200 |
commit | f5df5d69a78b03b7c843e3642725381fc9c76b95 (patch) | |
tree | 5be2901b4ae6f3a9e5e02a512d5ab85ca29a07c8 | |
parent | imsm: clear CONFIGURED_DISK for failed drives (diff) | |
download | mdadm-f5df5d69a78b03b7c843e3642725381fc9c76b95.tar.xz mdadm-f5df5d69a78b03b7c843e3642725381fc9c76b95.zip |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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; |