summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPeter Jones <pjones@redhat.com>2018-04-05 13:50:37 -0400
committerPeter Jones <pjones@redhat.com>2018-04-05 14:49:17 -0400
commit36cf41a61647640ebb2ee156140509cdc7ec7f7f (patch)
treeb9db3fd5d7682622dfb5f127c4961e828553665f /lib
parent41be16891924eb7db6e5a3d994f8405f3e64ab2e (diff)
downloadefi-boot-shim-36cf41a61647640ebb2ee156140509cdc7ec7f7f.tar.gz
efi-boot-shim-36cf41a61647640ebb2ee156140509cdc7ec7f7f.zip
Fix get_variable() usage in setup_verbosity()
Signed-off-by: Peter Jones <pjones@redhat.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/console.c16
1 files changed, 9 insertions, 7 deletions
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);
}