Revision: 19593 http://sourceforge.net/p/edk2/code/19593 Author: dandanbi Date: 2016-01-06 00:57:23 +0000 (Wed, 06 Jan 2016) Log Message: ----------- 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...@intel.com> Reviewed-by: Eric Dong <eric.d...@intel.com> Reviewed-by: Liming Gao <liming....@intel.com> Modified Paths: -------------- trunk/edk2/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c Modified: trunk/edk2/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c =================================================================== --- trunk/edk2/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c 2016-01-06 00:55:38 UTC (rev 19592) +++ trunk/edk2/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c 2016-01-06 00:57:23 UTC (rev 19593) @@ -3730,7 +3730,36 @@ } /** + 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. **/ @@ -4001,6 +4030,11 @@ CopyGuid (&gOldFormEntry.FormSetGuid, &FormData->FormSetGuid); gOldFormEntry.FormId = FormData->FormId; + // + //Free the Ui menu option list. + // + FreeMenuOptionData(&gMenuOption); + return Status; } ------------------------------------------------------------------------------ _______________________________________________ edk2-commits mailing list edk2-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-commits