Allow the new keys to be listed again

This commit is contained in:
Gary Ching-Pang Lin 2012-09-21 15:36:57 +08:00
parent 6577945fba
commit 6306b495c5

View File

@ -376,12 +376,11 @@ static UINT8 list_keys (void *MokNew, UINTN MokNewSize)
MokListNode *keys = NULL; MokListNode *keys = NULL;
INTN key_num = 0; INTN key_num = 0;
UINT8 initial = 1; UINT8 initial = 1;
int ret = 0;
CopyMem(&MokNum, MokNew, sizeof(UINT32)); CopyMem(&MokNum, MokNew, sizeof(UINT32));
if (MokNum == 0) { if (MokNum == 0) {
Print(L"No key exists\n"); Print(L"No key exists\n");
goto error; return 0;
} }
keys = build_mok_list(MokNum, keys = build_mok_list(MokNum,
@ -390,7 +389,7 @@ static UINT8 list_keys (void *MokNew, UINTN MokNewSize)
if (!keys) { if (!keys) {
Print(L"Failed to construct key list in MokNew\n"); Print(L"Failed to construct key list in MokNew\n");
goto error; return 0;
} }
do { do {
@ -418,30 +417,29 @@ static UINT8 list_keys (void *MokNew, UINTN MokNewSize)
initial = 0; initial = 0;
} while (key_num != 0); } while (key_num != 0);
ret = 1; FreePool(keys);
error:
if (keys)
FreePool(keys);
return ret; return 1;
} }
static UINT8 mok_enrollment_prompt (void *MokNew, UINTN MokNewSize) static UINT8 mok_enrollment_prompt (void *MokNew, UINTN MokNewSize)
{ {
EFI_INPUT_KEY key; EFI_INPUT_KEY key;
if (!list_keys(MokNew, MokNewSize)) { do {
return 0; if (!list_keys(MokNew, MokNewSize)) {
} return 0;
}
Print(L"Enroll the key(s)? (y/N): "); Print(L"Enroll the key(s) or list the key(s) again? (y/n/l): ");
key = get_keystroke(); key = get_keystroke();
Print(L"%c\n", key.UnicodeChar); Print(L"%c\n", key.UnicodeChar);
if (key.UnicodeChar == 'Y' || key.UnicodeChar == 'y') { if (key.UnicodeChar == 'Y' || key.UnicodeChar == 'y') {
return 1; return 1;
} }
} while (key.UnicodeChar == 'L' || key.UnicodeChar == 'l');
Print(L"Abort\n"); Print(L"Abort\n");