From edd01f055a8a8f922491ba7077bf26fcaf015516 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Wed, 21 Sep 2016 16:02:53 -0700 Subject: [PATCH] gpt: report all revalidation errors Before returning an error that the primary or backup GPT is invalid push the existing error onto the stack so the user will be told what is bad. --- grub-core/lib/gpt.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/grub-core/lib/gpt.c b/grub-core/lib/gpt.c index 259c62f44..5cae72207 100644 --- a/grub-core/lib/gpt.c +++ b/grub-core/lib/gpt.c @@ -677,13 +677,19 @@ grub_gpt_update_checksums (grub_gpt_t gpt) grub_gpt_header_lecrc32 (&gpt->backup.crc32, &gpt->backup); if (grub_gpt_check_primary (gpt)) - return grub_error (GRUB_ERR_BUG, "Generated invalid GPT primary header"); + { + grub_error_push (); + return grub_error (GRUB_ERR_BUG, "Generated invalid GPT primary header"); + } gpt->status |= (GRUB_GPT_PRIMARY_HEADER_VALID | GRUB_GPT_PRIMARY_ENTRIES_VALID); if (grub_gpt_check_backup (gpt)) - return grub_error (GRUB_ERR_BUG, "Generated invalid GPT backup header"); + { + grub_error_push (); + return grub_error (GRUB_ERR_BUG, "Generated invalid GPT backup header"); + } gpt->status |= (GRUB_GPT_BACKUP_HEADER_VALID | GRUB_GPT_BACKUP_ENTRIES_VALID);