|
@@ -692,6 +692,15 @@ int gpt_verify_headers(struct blk_desc *dev_desc, gpt_header *gpt_head,
|
|
|
/* Free pte before allocating again */
|
|
|
free(*gpt_pte);
|
|
|
|
|
|
+ /*
|
|
|
+ * Check that the alternate_lba entry points to the last LBA
|
|
|
+ */
|
|
|
+ if (le64_to_cpu(gpt_head->alternate_lba) != (dev_desc->lba - 1)) {
|
|
|
+ printf("%s: *** ERROR: Misplaced Backup GPT ***\n",
|
|
|
+ __func__);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
if (is_gpt_valid(dev_desc, (dev_desc->lba - 1),
|
|
|
gpt_head, gpt_pte) != 1) {
|
|
|
printf("%s: *** ERROR: Invalid Backup GPT ***\n",
|