diff options
author | qwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524> | 2008-10-30 07:32:46 +0000 |
---|---|---|
committer | qwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524> | 2008-10-30 07:32:46 +0000 |
commit | 676df92c2c0c5bdeb0f8e27349f5dd467928ce09 (patch) | |
tree | 68999d69951d5884d39a206c5c81ba59d91157fb /MdeModulePkg/Universal/SetupBrowserDxe | |
parent | bb1d8ee66943c3d126abbfc007159eb0fe458927 (diff) | |
download | edk2-platforms-676df92c2c0c5bdeb0f8e27349f5dd467928ce09.tar.xz |
Remove SafeFreePool from MemoryAllocationLib as this API's name is misleading. Its implementation only check if a pointer is NULL. If a garbage pointer is passed in, the gBS->FreePool will still ASSERT in debug build and return error code.
It is recommended that module writer should keep track how a pointer is allocated and free it after use.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6306 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Universal/SetupBrowserDxe')
-rw-r--r-- | MdeModulePkg/Universal/SetupBrowserDxe/Expression.c | 44 | ||||
-rw-r--r-- | MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c | 60 | ||||
-rw-r--r-- | MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c | 56 | ||||
-rw-r--r-- | MdeModulePkg/Universal/SetupBrowserDxe/Setup.c | 8 | ||||
-rw-r--r-- | MdeModulePkg/Universal/SetupBrowserDxe/Ui.c | 4 |
5 files changed, 113 insertions, 59 deletions
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c b/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c index 25d4e0a678..46f70b986b 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c @@ -712,9 +712,15 @@ IfrCatenate ( Result->Value.string = NewString (StringPtr, FormSet->HiiHandle);
Done:
- SafeFreePool (String[0]);
- SafeFreePool (String[1]);
- SafeFreePool (StringPtr);
+ if (String[0] != NULL) {
+ FreePool (String[0]);
+ }
+ if (String[1] != NULL) {
+ FreePool (String[1]);
+ }
+ if (StringPtr != NULL) {
+ FreePool (StringPtr);
+ }
return Status;
}
@@ -770,8 +776,12 @@ IfrMatch ( Result->Value.b = mUnicodeCollation->MetaiMatch (mUnicodeCollation, String[0], String[1]);
Done:
- SafeFreePool (String[0]);
- SafeFreePool (String[1]);
+ if (String[0] != NULL) {
+ FreePool (String[0]);
+ }
+ if (String[1] != NULL) {
+ FreePool (String[1]);
+ }
return Status;
}
@@ -855,8 +865,12 @@ IfrFind ( }
Done:
- SafeFreePool (String[0]);
- SafeFreePool (String[1]);
+ if (String[0] != NULL) {
+ FreePool (String[0]);
+ }
+ if (String[1] != NULL) {
+ FreePool (String[1]);
+ }
return Status;
}
@@ -1025,8 +1039,12 @@ IfrToken ( Result->Value.string = NewString (SubString, FormSet->HiiHandle);
Done:
- SafeFreePool (String[0]);
- SafeFreePool (String[1]);
+ if (String[0] != NULL) {
+ FreePool (String[0]);
+ }
+ if (String[1] != NULL) {
+ FreePool (String[1]);
+ }
return Status;
}
@@ -1129,8 +1147,12 @@ IfrSpan ( Result->Value.u64 = StringPtr - String[1];
Done:
- SafeFreePool (String[0]);
- SafeFreePool (String[1]);
+ if (String[0] != NULL) {
+ FreePool (String[0]);
+ }
+ if (String[1] != NULL) {
+ FreePool (String[1]);
+ }
return Status;
}
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c index 3a9a8bc3b9..f640d12e3a 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c @@ -445,7 +445,9 @@ DestroyExpression ( OpCode = EXPRESSION_OPCODE_FROM_LINK (Link); RemoveEntryList (&OpCode->Link); - SafeFreePool (OpCode->ValueList); + if (OpCode->ValueList != NULL) { + FreePool (OpCode->ValueList); + } } // @@ -473,25 +475,41 @@ DestroyStorage ( return; } - SafeFreePool (Storage->Name); - SafeFreePool (Storage->Buffer); - SafeFreePool (Storage->EditBuffer); + if (Storage->Name != NULL) { + FreePool (Storage->Name); + } + if (Storage->Buffer != NULL) { + FreePool (Storage->Buffer); + } + if (Storage->EditBuffer != NULL) { + FreePool (Storage->EditBuffer); + } while (!IsListEmpty (&Storage->NameValueListHead)) { Link = GetFirstNode (&Storage->NameValueListHead); NameValueNode = NAME_VALUE_NODE_FROM_LINK (Link); RemoveEntryList (&NameValueNode->Link); - SafeFreePool (NameValueNode->Name); - SafeFreePool (NameValueNode->Value); - SafeFreePool (NameValueNode->EditValue); - SafeFreePool (NameValueNode); + if (NameValueNode->Name != NULL) { + FreePool (NameValueNode->Name); + } + if (NameValueNode->Value != NULL) { + FreePool (NameValueNode->Value); + } + if (NameValueNode->EditValue != NULL) { + FreePool (NameValueNode->EditValue); + } + FreePool (NameValueNode); } - SafeFreePool (Storage->ConfigHdr); - SafeFreePool (Storage->ConfigRequest); + if (Storage->ConfigHdr != NULL) { + FreePool (Storage->ConfigHdr); + } + if (Storage->ConfigRequest != NULL) { + FreePool (Storage->ConfigRequest); + } - gBS->FreePool (Storage); + FreePool (Storage); } @@ -555,8 +573,12 @@ DestroyStatement ( DestroyExpression (Expression); } - SafeFreePool (Statement->VariableName); - SafeFreePool (Statement->BlockName); + if (Statement->VariableName != NULL) { + FreePool (Statement->VariableName); + } + if (Statement->BlockName != NULL) { + FreePool (Statement->BlockName); + } } @@ -623,7 +645,7 @@ DestroyFormSet ( // // Free IFR binary buffer // - SafeFreePool (FormSet->IfrBinaryData); + FreePool (FormSet->IfrBinaryData); // // Free FormSet Storage @@ -664,10 +686,14 @@ DestroyFormSet ( } } - SafeFreePool (FormSet->StatementBuffer); - SafeFreePool (FormSet->ExpressionBuffer); + if (FormSet->StatementBuffer != NULL) { + FreePool (FormSet->StatementBuffer); + } + if (FormSet->ExpressionBuffer != NULL) { + FreePool (FormSet->ExpressionBuffer); + } - SafeFreePool (FormSet); + FreePool (FormSet); } diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c index 404bb31e10..ba6927c719 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c @@ -611,34 +611,34 @@ FreeBrowserStrings ( VOID
)
{
- SafeFreePool (gFunctionOneString);
- SafeFreePool (gFunctionTwoString);
- SafeFreePool (gFunctionNineString);
- SafeFreePool (gFunctionTenString);
- SafeFreePool (gEnterString);
- SafeFreePool (gEnterCommitString);
- SafeFreePool (gEscapeString);
- SafeFreePool (gMoveHighlight);
- SafeFreePool (gMakeSelection);
- SafeFreePool (gDecNumericInput);
- SafeFreePool (gHexNumericInput);
- SafeFreePool (gToggleCheckBox);
- SafeFreePool (gPromptForData);
- SafeFreePool (gPromptForPassword);
- SafeFreePool (gPromptForNewPassword);
- SafeFreePool (gConfirmPassword);
- SafeFreePool (gPassowordInvalid);
- SafeFreePool (gConfirmError);
- SafeFreePool (gPressEnter);
- SafeFreePool (gEmptyString);
- SafeFreePool (gAreYouSure);
- SafeFreePool (gYesResponse);
- SafeFreePool (gNoResponse);
- SafeFreePool (gMiniString);
- SafeFreePool (gPlusString);
- SafeFreePool (gMinusString);
- SafeFreePool (gAdjustNumber);
- SafeFreePool (gSaveChanges);
+ FreePool (gFunctionOneString);
+ FreePool (gFunctionTwoString);
+ FreePool (gFunctionNineString);
+ FreePool (gFunctionTenString);
+ FreePool (gEnterString);
+ FreePool (gEnterCommitString);
+ FreePool (gEscapeString);
+ FreePool (gMoveHighlight);
+ FreePool (gMakeSelection);
+ FreePool (gDecNumericInput);
+ FreePool (gHexNumericInput);
+ FreePool (gToggleCheckBox);
+ FreePool (gPromptForData);
+ FreePool (gPromptForPassword);
+ FreePool (gPromptForNewPassword);
+ FreePool (gConfirmPassword);
+ FreePool (gPassowordInvalid);
+ FreePool (gConfirmError);
+ FreePool (gPressEnter);
+ FreePool (gEmptyString);
+ FreePool (gAreYouSure);
+ FreePool (gYesResponse);
+ FreePool (gNoResponse);
+ FreePool (gMiniString);
+ FreePool (gPlusString);
+ FreePool (gMinusString);
+ FreePool (gAdjustNumber);
+ FreePool (gSaveChanges);
return ;
}
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c index f728d53910..29b606fdef 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c @@ -724,7 +724,9 @@ NewStringCpy ( IN CHAR16 *Src
)
{
- SafeFreePool (*Dest);
+ if (*Dest != NULL) {
+ FreePool (*Dest);
+ }
*Dest = AllocateCopyPool (StrSize (Src), Src);
ASSERT (*Dest != NULL);
}
@@ -865,7 +867,9 @@ SetValueByName ( Node = NAME_VALUE_NODE_FROM_LINK (Link);
if (StrCmp (Name, Node->Name) == 0) {
- SafeFreePool (Node->EditValue);
+ if (Node->EditValue != NULL) {
+ FreePool (Node->EditValue);
+ }
Node->EditValue = AllocateCopyPool (StrSize (Value), Value);
ASSERT (Node->EditValue != NULL);
return EFI_SUCCESS;
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c b/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c index 8421ad9777..390d551386 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c @@ -2137,7 +2137,9 @@ UiDisplayMenu ( gDirection = SCAN_LEFT;
}
Status = ProcessOptions (Selection, MenuOption, TRUE, &OptionString);
- SafeFreePool (OptionString);
+ if (OptionString != NULL) {
+ FreePool (OptionString);
+ }
}
break;
|