From 1b8fda4e1d3c267827deac032a2610b742ccc9bf Mon Sep 17 00:00:00 2001 From: Benjamin Marzinski Date: Fri, 10 Feb 2012 12:14:39 -0600 Subject: [PATCH] kpartx: verify GUID partition entry size This patch pulls in some kernel code to catch a corrupt GUID partition table with the wrong size. Signed-off-by: Boris Ranto Signed-off-by: Benjamin Marzinski --- kpartx/gpt.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/kpartx/gpt.c b/kpartx/gpt.c index d0dec70..3082cae 100644 --- a/kpartx/gpt.c +++ b/kpartx/gpt.c @@ -367,6 +367,15 @@ is_gpt_valid(int fd, uint64_t lba, } + /* Check that sizeof_partition_entry has the correct value */ + if (__le32_to_cpu((*gpt)->sizeof_partition_entry) != sizeof(gpt_entry)) { + // printf("GUID partition entry size check failed.\n"); + free(*gpt); + *gpt = NULL; + return 0; + } + + if (!(*ptes = alloc_read_gpt_entries(fd, *gpt))) { free(*gpt); *gpt = NULL; -- 2.34.1