summaryrefslogtreecommitdiff
path: root/config.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2013-03-05 11:53:51 +1100
committerNeilBrown <neilb@suse.de>2013-03-05 11:53:51 +1100
commit5e73b02409e55b1f8e48e7b933d97a73ff2e66d3 (patch)
tree09cad15e1c395e7c7381d4c927063bc4c32dbd4d /config.c
parent748952f73e34f9963ea82347f4d71d67dcb1096a (diff)
Ensure mddev_dev struct always zeroed on allocation.
There are a number of fields which should not be left uninitialised. e.g. attempt_re_add can get confused if ->writemostly is not set correctly. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'config.c')
-rw-r--r--config.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/config.c b/config.c
index 0eb2c8d1..798338fb 100644
--- a/config.c
+++ b/config.c
@@ -179,9 +179,9 @@ struct mddev_dev *load_partitions(void)
if (!name)
continue;
d = xmalloc(sizeof(*d));
+ memset(d, 0, sizeof(*d));
d->devname = xstrdup(name);
d->next = rv;
- d->used = 0;
rv = d;
}
fclose(f);
@@ -203,12 +203,12 @@ struct mddev_dev *load_containers(void)
strncmp(ent->metadata_version, "external:", 9) == 0 &&
!is_subarray(&ent->metadata_version[9])) {
d = xmalloc(sizeof(*d));
+ memset(d, 0, sizeof(*d));
if (asprintf(&d->devname, "/dev/%s", ent->dev) < 0) {
free(d);
continue;
}
d->next = rv;
- d->used = 0;
rv = d;
}
free_mdstat(mdstat);
@@ -884,9 +884,9 @@ struct mddev_dev *conf_get_devs()
if (flags & GLOB_APPEND) {
for (i=0; i<globbuf.gl_pathc; i++) {
struct mddev_dev *t = xmalloc(sizeof(*t));
+ memset(t, 0, sizeof(*t));
t->devname = xstrdup(globbuf.gl_pathv[i]);
t->next = dlist;
- t->used = 0;
dlist = t;
/* printf("one dev is %s\n", t->devname);*/
}