]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
super1: Clear memory allocated for superblock + bitmap before use
authorJes Sorensen <Jes.Sorensen@redhat.com>
Wed, 6 Apr 2016 20:13:59 +0000 (16:13 -0400)
committerJes Sorensen <Jes.Sorensen@redhat.com>
Wed, 6 Apr 2016 20:13:59 +0000 (16:13 -0400)
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>
super1.c

index d6f3c9362af6fe662583a4aac7b053b167452378..8d5543f7b3aa1f01481b0561709b6966e06ee034 100644 (file)
--- a/super1.c
+++ b/super1.c
@@ -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",