DragonFlyBSD Kernel Audit
DF-0228 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/kern/subr_diskgpt.c b/sys/kern/subr_diskgpt.c
--- a/sys/kern/subr_diskgpt.c
+++ b/sys/kern/subr_diskgpt.c
@@ -77,7 +77,7 @@
 	uint32_t entries;
 	uint32_t entsz;
 	uint32_t crc;
-	uint32_t table_lba;
+	uint64_t table_lba;
 	uint32_t table_blocks;
 	int i;
 	const char *dname;
@@ -130,7 +130,7 @@
 	 */
 	entries = le32toh(gpt->hdr_entries);
 	entsz = le32toh(gpt->hdr_entsz);
-	table_lba = le32toh(gpt->hdr_lba_table);
+	table_lba = le64toh(gpt->hdr_lba_table);
 	table_blocks = (entries * entsz + info->d_media_blksize - 1) /
 		       info->d_media_blksize;
 	if (entries < 1 || entries > MAX_GPT_ENTRIES ||