From: Patrick Colp <patrick.c...@oracle.com> If a protector is specified, but it fails to unlock the disk, fall back to asking for the passphrase. However, an error was set indicating that the protector(s) failed. Later code (e.g., LUKS code) fails as `grub_errno` is now set. Print the existing errors out first, before proceeding with the passphrase.
Signed-off-by: Patrick Colp <patrick.c...@oracle.com> Signed-off-by: Gary Lin <g...@suse.com> --- grub-core/disk/cryptodisk.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/grub-core/disk/cryptodisk.c b/grub-core/disk/cryptodisk.c index 0ca1a5c4d..0dbf601c4 100644 --- a/grub-core/disk/cryptodisk.c +++ b/grub-core/disk/cryptodisk.c @@ -1191,11 +1191,16 @@ grub_cryptodisk_scan_device_real (const char *name, source->name, source->partition != NULL ? "," : "", part != NULL ? part : N_("UNKNOWN"), dev->uuid); grub_free (part); - goto error; } if (!cargs->key_len) { + if (grub_errno) + { + grub_print_error (); + grub_errno = GRUB_ERR_NONE; + } + /* Get the passphrase from the user, if no key data. */ askpass = 1; part = grub_partition_get_name (source->partition); -- 2.35.3 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel