From 8317a1f0ada758d4e86f0503ff229a8f7b74ef75 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 26 Sep 2013 13:44:05 -0400 Subject: Don't use LibGetVariable(), since it doesn't give us real error codes. --- MokManager.c | 55 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 19 deletions(-) (limited to 'MokManager.c') diff --git a/MokManager.c b/MokManager.c index 805017b6..7b7e1503 100644 --- a/MokManager.c +++ b/MokManager.c @@ -1685,46 +1685,63 @@ static EFI_STATUS check_mok_request(EFI_HANDLE image_handle) void *MokDel = NULL; void *MokSB = NULL; void *MokPW = NULL; + EFI_STATUS status; - MokNew = LibGetVariableAndSize(L"MokNew", &shim_lock_guid, &MokNewSize); - - MokDel = LibGetVariableAndSize(L"MokDel", &shim_lock_guid, &MokDelSize); - - MokSB = LibGetVariableAndSize(L"MokSB", &shim_lock_guid, &MokSBSize); - - MokPW = LibGetVariableAndSize(L"MokPW", &shim_lock_guid, &MokPWSize); - - enter_mok_menu(image_handle, MokNew, MokNewSize, MokDel, MokDelSize, - MokSB, MokSBSize, MokPW, MokPWSize); - - if (MokNew) { + status = get_variable(L"MokNew", (UINT8 **)&MokNew, &MokNewSize, + shim_lock_guid); + if (status == EFI_SUCCESS) { if (LibDeleteVariable(L"MokNew", &shim_lock_guid) != EFI_SUCCESS) { console_notify(L"Failed to delete MokNew"); } - FreePool (MokNew); + } else if (EFI_ERROR(status) && status != EFI_NOT_FOUND) { + console_error(L"Could not retrieve MokNew", status); } - if (MokDel) { + status = get_variable(L"MokDel", (UINT8 **)&MokDel, &MokDelSize, + shim_lock_guid); + if (status == EFI_SUCCESS) { if (LibDeleteVariable(L"MokDel", &shim_lock_guid) != EFI_SUCCESS) { console_notify(L"Failed to delete MokDel"); } - FreePool (MokDel); + } else if (EFI_ERROR(status) && status != EFI_NOT_FOUND) { + console_error(L"Could not retrieve MokDel", status); } - if (MokSB) { + status = get_variable(L"MokSB", (UINT8 **)&MokSB, &MokSBSize, + shim_lock_guid); + if (status == EFI_SUCCESS) { if (LibDeleteVariable(L"MokSB", &shim_lock_guid) != EFI_SUCCESS) { console_notify(L"Failed to delete MokSB"); } - FreePool (MokNew); + } else if (EFI_ERROR(status) && status != EFI_NOT_FOUND) { + console_error(L"Could not retrieve MokSB", status); } - if (MokPW) { + status = get_variable(L"MokPW", (UINT8 **)&MokPW, &MokPWSize, + shim_lock_guid); + if (status == EFI_SUCCESS) { if (LibDeleteVariable(L"MokPW", &shim_lock_guid) != EFI_SUCCESS) { console_notify(L"Failed to delete MokPW"); } - FreePool (MokNew); + } else if (EFI_ERROR(status) && status != EFI_NOT_FOUND) { + console_error(L"Could not retrieve MokPW", status); } + enter_mok_menu(image_handle, MokNew, MokNewSize, MokDel, MokDelSize, + MokSB, MokSBSize, MokPW, MokPWSize); + + if (MokNew) + FreePool (MokNew); + + if (MokDel) + FreePool (MokDel); + + if (MokSB) + FreePool (MokSB); + + if (MokPW) + FreePool (MokPW); + LibDeleteVariable(L"MokAuth", &shim_lock_guid); LibDeleteVariable(L"MokDelAuth", &shim_lock_guid); -- cgit v1.2.3