diff options
author | NeilBrown <neilb@suse.de> | 2014-08-15 15:45:54 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2014-08-15 15:45:54 +1000 |
commit | 268cccac2e44e8e9166c9727e740d5d1f537b6a4 (patch) | |
tree | 7e3023a5a9b38e0ffe9603bb40d47508e6bbff13 | |
parent | 73ff07327198533ccb21d7ad8765365d85843c28 (diff) |
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 <rhelbugzilla@lars.wijtemans.nl>
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=922944
-rw-r--r-- | super1.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -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.. */ |