Browse files

Clean up checks for MokManager entry

Add a helper function and tidy up the calls for getting into MokManager
  • Loading branch information...
1 parent 59f2e0a commit 4e3721a0b5e0425d1ee95a5caa39c02102e9a6fb Matthew Garrett committed Oct 23, 2012
Showing with 15 additions and 17 deletions.
  1. +15 −17 shim.c
View
32 shim.c
@@ -1035,32 +1035,30 @@ EFI_STATUS mirror_mok_list()
return efi_status;
}
-EFI_STATUS check_mok_request(EFI_HANDLE image_handle)
+static BOOLEAN check_var(CHAR16 *varname)
{
+ EFI_STATUS efi_status;
EFI_GUID shim_lock_guid = SHIM_LOCK_GUID;
- EFI_STATUS moknew_status, moksb_status, mokpw_status, efi_status;
UINTN size = sizeof(UINT32);
UINT32 MokVar;
UINT32 attributes;
- moknew_status = uefi_call_wrapper(RT->GetVariable, 5, L"MokNew",
- &shim_lock_guid, &attributes,
- &size, (void *)&MokVar);
+ efi_status = uefi_call_wrapper(RT->GetVariable, 5, varname,
+ &shim_lock_guid, &attributes,
+ &size, (void *)&MokVar);
- moksb_status = uefi_call_wrapper(RT->GetVariable, 5, L"MokSB",
- &shim_lock_guid, &attributes,
- &size, (void *)&MokVar);
+ if (efi_status == EFI_SUCCESS || efi_status == EFI_BUFFER_TOO_SMALL)
+ return TRUE;
+
+ return FALSE;
+}
- mokpw_status = uefi_call_wrapper(RT->GetVariable, 5, L"MokPW",
- &shim_lock_guid, &attributes,
- &size, (void *)&MokVar);
+EFI_STATUS check_mok_request(EFI_HANDLE image_handle)
+{
+ EFI_STATUS efi_status;
- if (moknew_status == EFI_SUCCESS ||
- moknew_status == EFI_BUFFER_TOO_SMALL ||
- moksb_status == EFI_SUCCESS ||
- moksb_status == EFI_BUFFER_TOO_SMALL ||
- mokpw_status == EFI_SUCCESS ||
- mokpw_status == EFI_BUFFER_TOO_SMALL) {
+ if (check_var(L"MokNew") || check_var(L"MokSB") ||
+ check_var(L"MokPW") || check_var(L"MokAuth")) {
efi_status = start_image(image_handle, MOK_MANAGER);
if (efi_status != EFI_SUCCESS) {

0 comments on commit 4e3721a

Please sign in to comment.