瀏覽代碼

Validate size of EFI GUID partition entries.

Otherwise corrupted EFI partition tables can cause total confusion.

Signed-off-by: Timo Warns <warns@pre-sense.de>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Timo Warns 14 年之前
父節點
當前提交
fa039d5f6b
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      fs/partitions/efi.c

+ 6 - 0
fs/partitions/efi.c

@@ -348,6 +348,12 @@ static int is_gpt_valid(struct parsed_partitions *state, u64 lba,
 		goto fail;
 		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(state, *gpt)))
 	if (!(*ptes = alloc_read_gpt_entries(state, *gpt)))
 		goto fail;
 		goto fail;