mirror of https://github.com/acidanthera/audk.git
MdeModulePkg:Fix the potential memory leak issue in Display Engine
The MenuOption insert to gMenuOption allocate memory everytime,but not free. Now add the code to free it. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19593 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
8339166dd1
commit
b954a4fe01
|
@ -3729,6 +3729,35 @@ UiDisplayMenu (
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Free the UI Menu Option structure data.
|
||||||
|
|
||||||
|
@param MenuOptionList Point to the menu option list which need to be free.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
VOID
|
||||||
|
FreeMenuOptionData(
|
||||||
|
LIST_ENTRY *MenuOptionList
|
||||||
|
)
|
||||||
|
{
|
||||||
|
LIST_ENTRY *Link;
|
||||||
|
UI_MENU_OPTION *Option;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Free menu option list
|
||||||
|
//
|
||||||
|
while (!IsListEmpty (MenuOptionList)) {
|
||||||
|
Link = GetFirstNode (MenuOptionList);
|
||||||
|
Option = MENU_OPTION_FROM_LINK (Link);
|
||||||
|
if (Option->Description != NULL){
|
||||||
|
FreePool(Option->Description);
|
||||||
|
}
|
||||||
|
RemoveEntryList (&Option->Link);
|
||||||
|
FreePool (Option);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
Base on the browser status info to show an pop up message.
|
Base on the browser status info to show an pop up message.
|
||||||
|
@ -4001,6 +4030,11 @@ FormDisplay (
|
||||||
CopyGuid (&gOldFormEntry.FormSetGuid, &FormData->FormSetGuid);
|
CopyGuid (&gOldFormEntry.FormSetGuid, &FormData->FormSetGuid);
|
||||||
gOldFormEntry.FormId = FormData->FormId;
|
gOldFormEntry.FormId = FormData->FormId;
|
||||||
|
|
||||||
|
//
|
||||||
|
//Free the Ui menu option list.
|
||||||
|
//
|
||||||
|
FreeMenuOptionData(&gMenuOption);
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue