From c2fdd34569145ad281aeea5ef16fff83d7075830 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Fri, 29 Jul 2016 11:12:18 +0800 Subject: cmd: gpt: fix the wrong size parse for the last partition The calculation of "dev_desc->lba - 34 - 1 - offset" is not correct for size '-', because both fist_usable_lba and last_usable_lba will remain 34 sectors. We can simply use 0 for size '-' because the part_efi module will decode the size and auto extend the size to maximum available size. Signed-off-by: Kever Yang --- disk/part_efi.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'disk') diff --git a/disk/part_efi.c b/disk/part_efi.c index 01f71bee79..8d67c09a43 100644 --- a/disk/part_efi.c +++ b/disk/part_efi.c @@ -655,6 +655,10 @@ int gpt_verify_partitions(struct blk_desc *dev_desc, (unsigned long long)partitions[i].size); if (le64_to_cpu(gpt_part_size) != partitions[i].size) { + /* We do not check the extend partition size */ + if ((i == parts - 1) && (partitions[i].size == 0)) + continue; + error("Partition %s size: %llu does not match %llu!\n", efi_str, (unsigned long long)gpt_part_size, (unsigned long long)partitions[i].size); -- cgit v1.2.3