diff options
| author | Peter Jones <pjones@redhat.com> | 2018-04-05 13:50:37 -0400 |
|---|---|---|
| committer | Peter Jones <pjones@redhat.com> | 2018-04-05 14:49:17 -0400 |
| commit | 36cf41a61647640ebb2ee156140509cdc7ec7f7f (patch) | |
| tree | b9db3fd5d7682622dfb5f127c4961e828553665f /lib | |
| parent | 41be16891924eb7db6e5a3d994f8405f3e64ab2e (diff) | |
| download | efi-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.c | 16 |
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); } |
