1. Use MemoryAllocationLib to replace boot services memory services functions in EdkModulePkg.

2. Added NULL pointer check before calling FreePool () to fix bugs when free memory.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2513 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
vanjeff
2007-03-29 06:58:38 +00:00
parent cb360b2656
commit c8dd259d61
13 changed files with 357 additions and 394 deletions

View File

@ -138,7 +138,7 @@ AdjustNvMap (
}
}
gBS->FreePool (VariableDefinition->NvRamMap);
FreePool (VariableDefinition->NvRamMap);
VariableDefinition->NvRamMap = NvRamMap;
VariableDefinition->VariableFakeSize = (UINT16) SizeRequired;
}
@ -226,7 +226,7 @@ ProcessOptions (
);
if (*OptionString != NULL) {
gBS->FreePool (*OptionString);
FreePool (*OptionString);
*OptionString = NULL;
}
@ -311,7 +311,7 @@ ProcessOptions (
if (!EFI_ERROR (Status)) {
if (Tag->Operand == EFI_IFR_ORDERED_LIST_OP) {
CopyMem (NvRamMap, ValueArray, MenuOption->ThisTag->StorageWidth);
gBS->FreePool (ValueArray);
FreePool (ValueArray);
} else {
//
// Since the value can be one byte long or two bytes long, do a CopyMem based on StorageWidth
@ -359,7 +359,7 @@ ProcessOptions (
// Since the value can be one byte long or two bytes long, do a CopyMem based on StorageWidth
//
CopyMem (NvRamMap, &Number, MenuOption->ThisTag->StorageWidth);
gBS->FreePool (StringPtr);
FreePool (StringPtr);
break;
default:
@ -372,7 +372,7 @@ ProcessOptions (
UpdateStatusBar (NV_UPDATE_REQUIRED, Tag->Flags, TRUE);
} else {
if (Tag->Operand == EFI_IFR_ORDERED_LIST_OP) {
gBS->FreePool (ValueArray);
FreePool (ValueArray);
}
return EFI_SUCCESS;
@ -434,7 +434,7 @@ ProcessOptions (
//
// Remove Buffer allocated for StringPtr after it has been used.
//
gBS->FreePool (StringPtr);
FreePool (StringPtr);
} else {
//
// The option value is the same as what is stored in NV store. Print this.
@ -447,7 +447,7 @@ ProcessOptions (
//
// Remove Buffer allocated for StringPtr after it has been used.
//
gBS->FreePool (StringPtr);
FreePool (StringPtr);
Default = 0;
break;
}
@ -475,7 +475,7 @@ ProcessOptions (
//
// Remove Buffer allocated for StringPtr after it has been used.
//
gBS->FreePool (StringPtr);
FreePool (StringPtr);
}
}
break;
@ -1028,7 +1028,7 @@ ProcessOptions (
UpdateStatusBar (NV_UPDATE_REQUIRED, Tag->Flags, TRUE);
}
gBS->FreePool (StringPtr);
FreePool (StringPtr);
return Status;
} else {
for (Index = 0; Index < gOptionBlockWidth; Index++) {
@ -1073,13 +1073,13 @@ ProcessOptions (
if (EFI_ERROR (Status)) {
if (Status == EFI_NOT_READY) {
gBS->FreePool (StringPtr);
FreePool (StringPtr);
return EFI_SUCCESS;
}
}
Status = ReadPassword (MenuOption, TRUE, Tag, PageData, TRUE, FileFormTags, StringPtr);
gBS->FreePool (StringPtr);
FreePool (StringPtr);
return EFI_SUCCESS;
}
@ -1090,7 +1090,7 @@ ProcessOptions (
//
Status = ReadPassword (MenuOption, TRUE, Tag, PageData, FALSE, FileFormTags, StringPtr);
if (EFI_ERROR (Status)) {
gBS->FreePool (StringPtr);
FreePool (StringPtr);
return EFI_SUCCESS;
}
@ -1102,7 +1102,7 @@ ProcessOptions (
}
if (Status != 0) {
gBS->FreePool (StringPtr);
FreePool (StringPtr);
return EFI_SUCCESS;
} else {
break;
@ -1123,7 +1123,7 @@ ProcessOptions (
//
// User couldn't figure out how to type two identical passwords
//
gBS->FreePool (StringPtr);
FreePool (StringPtr);
return EFI_SUCCESS;
}
//
@ -1180,8 +1180,8 @@ ProcessOptions (
);
}
gBS->FreePool (TmpNvRamMap);
gBS->FreePool (StringPtr);
FreePool (TmpNvRamMap);
FreePool (StringPtr);
break;
}