gpt: properly detect and repair invalid tables

GPT_BOTH_VALID is 4 bits so simple a boolean check is not sufficient.
This broken condition allowed gptprio to trust bogus disk locations in
headers that were marked invalid causing arbitrary disk corruption.
This commit is contained in:
Michael Marineau 2016-08-20 17:42:12 -07:00
parent 4d91c78833
commit 6078f83638
2 changed files with 2 additions and 2 deletions

View file

@ -91,7 +91,7 @@ grub_find_next (const char *disk_name,
if (!gpt)
goto done;
if (!(gpt->status & GRUB_GPT_BOTH_VALID))
if ((gpt->status & GRUB_GPT_BOTH_VALID) != GRUB_GPT_BOTH_VALID)
if (grub_gpt_repair (dev->disk, gpt))
goto done;