forked from pool/mdadm
32 lines
994 B
Diff
32 lines
994 B
Diff
|
From 1dcee1c9cbcf9592275914706b76b1931490092c Mon Sep 17 00:00:00 2001
|
||
|
From: Jes Sorensen <Jes.Sorensen@redhat.com>
|
||
|
Date: Wed, 6 Apr 2016 16:13:59 -0400
|
||
|
Subject: [PATCH] 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>
|
||
|
---
|
||
|
super1.c | 2 ++
|
||
|
1 file changed, 2 insertions(+)
|
||
|
|
||
|
--- a/super1.c
|
||
|
+++ b/super1.c
|
||
|
@@ -2016,6 +2016,8 @@ static int load_super1(struct supertype
|
||
|
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",
|