Validate size of EFI GUID partition entries.

commit fa039d5f6b upstream.

Otherwise corrupted EFI partition tables can cause total confusion.

Signed-off-by: Timo Warns <warns@pre-sense.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Timo Warns
2011-05-06 13:47:35 +02:00
committed by Greg Kroah-Hartman
parent b3f815365f
commit 88b5ff36c0

View File

@@ -349,6 +349,12 @@ is_gpt_valid(struct block_device *bdev, u64 lba,
goto fail;
}
/* Check that sizeof_partition_entry has the correct value */
if (le32_to_cpu((*gpt)->sizeof_partition_entry) != sizeof(gpt_entry)) {
pr_debug("GUID Partitition Entry Size check failed.\n");
goto fail;
}
if (!(*ptes = alloc_read_gpt_entries(bdev, *gpt)))
goto fail;