[PATCH] partitions: efi: Check GPT header size against minimum limit

Abdelrahman Youssef abdelrahmanyossef12 at gmail.com
Wed Dec 4 07:26:25 PST 2024


In https://git.pengutronix.de/cgit/barebox/commit/?id=a9c6ad764144, we were
checking if the GPT header size is exceeding the maximum limit.

This is a follow-up patch to check if the header size is less than
the minimum limit which is 92 as per this documentation
https://uefi.org/specs/UEFI/2.10/05_GUID_Partition_Table_Format.html#id14

Signed-off-by: Abdelrahman Youssef <abdelrahmanyossef12 at gmail.com>
---
 common/partitions/efi.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/common/partitions/efi.c b/common/partitions/efi.c
index 8014579b67..a4e60c3c98 100644
--- a/common/partitions/efi.c
+++ b/common/partitions/efi.c
@@ -190,7 +190,8 @@ static int is_gpt_valid(struct block_device *blk, u64 lba,
 		goto fail;
 	}
 
-	if (le32_to_cpu((*gpt)->header_size) > bdev_logical_block_size(blk))
+	if (le32_to_cpu((*gpt)->header_size) < 92 ||
+        le32_to_cpu((*gpt)->header_size) > bdev_logical_block_size(blk))
 		goto fail;
 
 	/* Check the GUID Partition Table CRC */
-- 
2.43.0




More information about the barebox mailing list