diff options
| author | Peter Jones <pjones@redhat.com> | 2015-06-04 10:19:30 -0400 |
|---|---|---|
| committer | Peter Jones <pjones@redhat.com> | 2015-06-04 10:19:30 -0400 |
| commit | 0b394a94805fb5647bb68a9e1afd5e347eadc0a3 (patch) | |
| tree | 1b61e5a51d819b51e5759cc9db36d4c30d96b262 | |
| parent | 929b5b762be060e25f035cafc75f3d37efe0334b (diff) | |
| download | efi-boot-shim-0b394a94805fb5647bb68a9e1afd5e347eadc0a3.tar.gz efi-boot-shim-0b394a94805fb5647bb68a9e1afd5e347eadc0a3.zip | |
Only run MokManager if asked or a security violation occurs.
Don't run MokManager on any random error from start_image(second_stage);
only try it if it /is/ the second stage, or if start_image gave us
EFI_SECURITY_VIOLATION.
Signed-off-by: Peter Jones <pjones@redhat.com>
| -rw-r--r-- | shim.c | 17 |
1 files changed, 12 insertions, 5 deletions
@@ -1673,14 +1673,21 @@ done: EFI_STATUS init_grub(EFI_HANDLE image_handle) { EFI_STATUS efi_status; + int use_fb = should_use_fallback(image_handle); - if (should_use_fallback(image_handle)) - efi_status = start_image(image_handle, FALLBACK); - else - efi_status = start_image(image_handle, second_stage); + efi_status = start_image(image_handle, use_fb ? FALLBACK :second_stage); - if (efi_status != EFI_SUCCESS) + if (efi_status == EFI_SECURITY_VIOLATION) { efi_status = start_image(image_handle, MOK_MANAGER); + if (efi_status != EFI_SUCCESS) { + Print(L"start_image() returned %r\n", efi_status); + uefi_call_wrapper(BS->Stall, 1, 2000000); + return efi_status; + } + + efi_status = start_image(image_handle, + use_fb ? FALLBACK : second_stage); + } Print(L"start_image() returned %r\n", efi_status); uefi_call_wrapper(BS->Stall, 1, 2000000); |
