mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-28 10:01:32 +00:00
disk: part_efi: range-check partition number
Enhance get_partition_info_efi() to range-check the partition number. This prevents invalid partitions being accessed, and prevents access beyond the end of the gpt_pte[] array. Signed-off-by: Stephen Warren <swarren@nvidia.com>
This commit is contained in:
parent
10a37fd7a4
commit
c04d68c694
1 changed files with 7 additions and 0 deletions
|
@ -173,6 +173,13 @@ int get_partition_info_efi(block_dev_desc_t * dev_desc, int part,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (part > le32_to_int(gpt_head->num_partition_entries) ||
|
||||||
|
!is_pte_valid(&gpt_pte[part - 1])) {
|
||||||
|
printf("%s: *** ERROR: Invalid partition number %d ***\n",
|
||||||
|
__func__, part);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/* The ulong casting limits the maximum disk size to 2 TB */
|
/* The ulong casting limits the maximum disk size to 2 TB */
|
||||||
info->start = (ulong) le64_to_int(gpt_pte[part - 1].starting_lba);
|
info->start = (ulong) le64_to_int(gpt_pte[part - 1].starting_lba);
|
||||||
/* The ending LBA is inclusive, to calculate size, add 1 to it */
|
/* The ending LBA is inclusive, to calculate size, add 1 to it */
|
||||||
|
|
Loading…
Add table
Reference in a new issue