From: Michael Chang Date: Tue, 18 Feb 2020 10:08:18 +0000 (+0800) Subject: verifiers: Fix calling uninitialized function pointer X-Git-Tag: grub-2.06-rc1~313 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d0de8b37f651e13886ef0e0fda285a1294adafe8;p=thirdparty%2Fgrub.git verifiers: Fix calling uninitialized function pointer The necessary check for NULL before use of function ver->close is not taking place in the failure path. This patch simply adds the missing check and fixes the problem that GRUB hangs indefinitely after booting rogue image without valid signature if secure boot is turned on. Now it displays like this for booting rogue UEFI image: error: bad shim signature error: you need to load the kernel first Press any key to continue... and then you can go back to boot menu by pressing any key or after a few seconds expired. Signed-off-by: Michael Chang Reviewed-by: Javier Martinez Canillas Reviewed-by: Daniel Kiper --- diff --git a/grub-core/commands/verifiers.c b/grub-core/commands/verifiers.c index 0dde48182..7b9297cd3 100644 --- a/grub-core/commands/verifiers.c +++ b/grub-core/commands/verifiers.c @@ -196,7 +196,8 @@ grub_verifiers_open (grub_file_t io, enum grub_file_type type) return ret; fail: - ver->close (context); + if (ver->close) + ver->close (context); fail_noclose: verified_free (verified); grub_free (ret);