From: NeilBrown Date: Fri, 15 Aug 2014 05:45:54 +0000 (+1000) Subject: super1: don't allow adding a bitmap if there is no space. X-Git-Tag: mdadm-3.3.2~3 X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=commitdiff_plain;h=268cccac2e44e8e9166c9727e740d5d1f537b6a4 super1: don't allow adding a bitmap if there is no space. If the data is too close to the superblock there may be no space for a bitmap. If that happens, fail the adding of the bitmap rather than corrupt data. Reported-by: Lars Wijtemans Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=922944 --- diff --git a/super1.c b/super1.c index 9834594c..02d6c7a1 100644 --- a/super1.c +++ b/super1.c @@ -2105,6 +2105,10 @@ add_internal_bitmap1(struct supertype *st, /* Limit to 128K of bitmap when chunk size not requested */ room = 128*2; + if (room <= 1) + /* No room for a bitmap */ + return 0; + max_bits = (room * 512 - sizeof(bitmap_super_t)) * 8; min_chunk = 4096; /* sub-page chunks don't work yet.. */