diff options
author | Jes Sorensen <Jes.Sorensen@redhat.com> | 2016-04-06 16:13:59 -0400 |
---|---|---|
committer | Jes Sorensen <Jes.Sorensen@redhat.com> | 2016-04-06 16:13:59 -0400 |
commit | 1dcee1c9cbcf9592275914706b76b1931490092c (patch) | |
tree | 755023a2b6bf82c1db13c7e1a54abcdf88a064f4 /super1.c | |
parent | 95b55f18751f0d04adaec7fdddd9ccbe8cce5b18 (diff) | |
download | mdadm-1dcee1c9cbcf9592275914706b76b1931490092c.tar.gz |
super1: Clear memory allocated for superblock + bitmap before use
load_super1() did not clear memory allocated for the superblock +
bitmap. This causes issues if the superblock does not contain a bitmap
as later checks of bitmap features would rely on the bits being
cleared.
This bug has been around for a long time, but was only exposed in
mdadm-3.4 with the introduction of the clustering code.
Reported-by: Jan Stodola <jstodola@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Diffstat (limited to 'super1.c')
-rw-r--r-- | super1.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -2016,6 +2016,8 @@ static int load_super1(struct supertype *st, int fd, char *devname) return 1; } + memset(super, 0, SUPER1_SIZE); + if (aread(&afd, super, MAX_SB_SIZE) != MAX_SB_SIZE) { if (devname) pr_err("Cannot read superblock on %s\n", |