diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c index 134833286f..508bd6e9ac 100644 --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c @@ -521,6 +521,15 @@ BdsDeleteAllInvalidLegacyBootOptions ( return Status; } + BootOrder = BdsLibGetVariableAndSize ( + L"BootOrder", + &gEfiGlobalVariableGuid, + &BootOrderSize + ); + if (BootOrder == NULL) { + return EFI_NOT_FOUND; + } + LegacyBios->GetBbsInfo ( LegacyBios, &HddCount, @@ -529,15 +538,6 @@ BdsDeleteAllInvalidLegacyBootOptions ( &LocalBbsTable ); - BootOrder = BdsLibGetVariableAndSize ( - L"BootOrder", - &gEfiGlobalVariableGuid, - &BootOrderSize - ); - if (BootOrder == NULL) { - BootOrderSize = 0; - } - Index = 0; while (Index < BootOrderSize / sizeof (UINT16)) { UnicodeSPrint (BootOption, sizeof (BootOption), L"Boot%04x", BootOrder[Index]); @@ -634,9 +634,7 @@ BdsDeleteAllInvalidLegacyBootOptions ( // Shrinking variable with existing variable implementation shouldn't fail. // ASSERT_EFI_ERROR (Status); - if (BootOrder != NULL) { - FreePool (BootOrder); - } + FreePool (BootOrder); return Status; }