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>
This commit is contained in:
Jes Sorensen 2016-04-06 16:13:59 -04:00
parent 95b55f1875
commit 1dcee1c9cb
1 changed files with 2 additions and 0 deletions

View File

@ -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",