From 36cf41a61647640ebb2ee156140509cdc7ec7f7f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 5 Apr 2018 13:50:37 -0400 Subject: Fix get_variable() usage in setup_verbosity() Signed-off-by: Peter Jones --- lib/console.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'lib/console.c') diff --git a/lib/console.c b/lib/console.c index 12f48b08..3aee41cd 100644 --- a/lib/console.c +++ b/lib/console.c @@ -502,21 +502,23 @@ console_reset(void) co->ClearScreen(co); } -UINT8 verbose; +UINT32 verbose = 0; VOID setup_verbosity(VOID) { EFI_STATUS efi_status; - UINT8 verbose_check; + UINT8 *verbose_check_ptr = NULL; UINTN verbose_check_size; - verbose_check_size = 1; - efi_status = get_variable(L"SHIM_VERBOSE", (void *)&verbose_check, + verbose_check_size = sizeof(verbose); + efi_status = get_variable(L"SHIM_VERBOSE", &verbose_check_ptr, &verbose_check_size, SHIM_LOCK_GUID); - verbose = 0; - if (!EFI_ERROR(efi_status)) - verbose = verbose_check; + if (!EFI_ERROR(efi_status)) { + verbose = *(__typeof__(verbose) *)verbose_check_ptr; + verbose &= (1ULL << (8 * verbose_check_size)) - 1ULL; + FreePool(verbose_check_ptr); + } setup_console(-1); } -- cgit v1.2.3