mirror of
https://git.proxmox.com/git/efi-boot-shim
synced 2025-07-29 17:02:05 +00:00
Fix menu items
Only show the MOK manipulation menu item if MokNew existed
This commit is contained in:
parent
ba3c876b24
commit
d2188bbf12
48
MokManager.c
48
MokManager.c
@ -990,33 +990,47 @@ UINTN find_fs (void *data, void *data2) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int enter_mok_menu(EFI_HANDLE image_handle, void *MokNew)
|
static EFI_STATUS enter_mok_menu(EFI_HANDLE image_handle, void *MokNew)
|
||||||
{
|
{
|
||||||
struct menu_item menu_item[3];
|
struct menu_item *menu_item;
|
||||||
UINT32 MokNum;
|
UINT32 MokNum;
|
||||||
|
UINTN menucount = 0;
|
||||||
|
|
||||||
|
if (MokNew)
|
||||||
|
menu_item = AllocatePool(sizeof(struct menu_item) * 3);
|
||||||
|
else
|
||||||
|
menu_item = AllocatePool(sizeof(struct menu_item) * 2);
|
||||||
|
|
||||||
|
if (!menu_item)
|
||||||
|
return EFI_OUT_OF_RESOURCES;
|
||||||
|
|
||||||
menu_item[0].text = StrDuplicate(L"Continue boot");
|
menu_item[0].text = StrDuplicate(L"Continue boot");
|
||||||
menu_item[0].colour = EFI_WHITE;
|
menu_item[0].colour = EFI_WHITE;
|
||||||
menu_item[0].callback = NULL;
|
menu_item[0].callback = NULL;
|
||||||
|
|
||||||
CopyMem(&MokNum, MokNew, sizeof(UINT32));
|
menucount++;
|
||||||
if (MokNum == 0) {
|
|
||||||
menu_item[1].text = StrDuplicate(L"Delete MOK");
|
if (MokNew) {
|
||||||
menu_item[1].colour = EFI_WHITE;
|
CopyMem(&MokNum, MokNew, sizeof(UINT32));
|
||||||
menu_item[1].data = MokNew;
|
if (MokNum == 0) {
|
||||||
menu_item[1].callback = mok_deletion_prompt;
|
menu_item[1].text = StrDuplicate(L"Delete MOK");
|
||||||
} else {
|
menu_item[1].colour = EFI_WHITE;
|
||||||
menu_item[1].text = StrDuplicate(L"Enroll MOK\n");
|
menu_item[1].data = MokNew;
|
||||||
menu_item[1].colour = EFI_WHITE;
|
menu_item[1].callback = mok_deletion_prompt;
|
||||||
menu_item[1].data = MokNew;
|
} else {
|
||||||
menu_item[1].callback = mok_enrollment_prompt;
|
menu_item[1].text = StrDuplicate(L"Enroll MOK\n");
|
||||||
|
menu_item[1].colour = EFI_WHITE;
|
||||||
|
menu_item[1].data = MokNew;
|
||||||
|
menu_item[1].callback = mok_enrollment_prompt;
|
||||||
|
}
|
||||||
|
menucount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
menu_item[2].text = StrDuplicate(L"Enroll key from disk");
|
menu_item[menucount].text = StrDuplicate(L"Enroll key from disk");
|
||||||
menu_item[2].colour = EFI_WHITE;
|
menu_item[menucount].colour = EFI_WHITE;
|
||||||
menu_item[2].callback = find_fs;
|
menu_item[menucount].callback = find_fs;
|
||||||
|
|
||||||
run_menu(menu_item, 3);
|
run_menu(menu_item, menucount);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user