Revision: 16396
          http://sourceforge.net/p/edk2/code/16396
Author:   lzeng14
Date:     2014-11-17 02:30:44 +0000 (Mon, 17 Nov 2014)
Log Message:
-----------
MdeModulePkg DxeCore/PiSmmCore/MemoryProfileInfo: Fix EBC and VS2013 build 
failure.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <[email protected]>
Reviewed-by: Jiewen Yao <[email protected]>

Modified Paths:
--------------
    trunk/edk2/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c
    trunk/edk2/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c
    trunk/edk2/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c

Modified: 
trunk/edk2/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c
===================================================================
--- trunk/edk2/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c   
2014-11-17 01:53:41 UTC (rev 16395)
+++ trunk/edk2/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c   
2014-11-17 02:30:44 UTC (rev 16396)
@@ -557,6 +557,7 @@
   Size = Size + sizeof (MEMORY_PROFILE_ALLOC_INFO);
   Data = AllocateZeroPool ((UINTN) Size);
   if (Data == NULL) {
+    Status = EFI_OUT_OF_RESOURCES;
     Print (L"UefiMemoryProfile: AllocateZeroPool (0x%x) - %r\n", Size, Status);
     return Status;
   }
@@ -597,7 +598,7 @@
 {
   EFI_STATUS                                    Status;
   UINTN                                         CommSize;
-  UINT8                                         CommBuffer[sizeof (EFI_GUID) + 
sizeof (UINTN) + sizeof (SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA)];
+  UINT8                                         *CommBuffer;
   EFI_SMM_COMMUNICATE_HEADER                    *CommHeader;
   SMRAM_PROFILE_PARAMETER_GET_PROFILE_INFO      *CommGetProfileInfo;
   SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA      *CommGetProfileData;
@@ -611,6 +612,14 @@
     return Status;
   }
 
+  CommSize = sizeof (EFI_GUID) + sizeof (UINTN) + sizeof 
(SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA);
+  CommBuffer = AllocateZeroPool (CommSize);
+  if (CommBuffer == NULL) {
+    Status = EFI_OUT_OF_RESOURCES;
+    Print (L"SmramProfile: AllocateZeroPool (0x%x) for comm buffer - %r\n", 
CommSize, Status);
+    return Status;
+  }
+
   //
   // Get Size
   //
@@ -627,6 +636,7 @@
   CommSize = sizeof (EFI_GUID) + sizeof (UINTN) + CommHeader->MessageLength;
   Status = SmmCommunication->Communicate (SmmCommunication, CommBuffer, 
&CommSize);
   if (EFI_ERROR (Status)) {
+    FreePool (CommBuffer);
     DEBUG ((EFI_D_ERROR, "SmramProfile: SmmCommunication - %r\n", Status));
     return Status;
   }
@@ -643,15 +653,17 @@
   //
   ProfileBuffer = (PHYSICAL_ADDRESS) (UINTN) AllocateZeroPool ((UINTN) 
ProfileSize);
   if (ProfileBuffer == 0) {
-    Print (L"UefiMemoryProfile: AllocateZeroPool (0x%x) - %r\n", (UINTN) 
ProfileSize, Status);
-    return EFI_SUCCESS;
+    FreePool (CommBuffer);
+    Status = EFI_OUT_OF_RESOURCES;
+    Print (L"SmramProfile: AllocateZeroPool (0x%x) for profile buffer - %r\n", 
(UINTN) ProfileSize, Status);
+    return Status;
   }
 
   CommHeader = (EFI_SMM_COMMUNICATE_HEADER *) &CommBuffer[0];
   CopyMem (&CommHeader->HeaderGuid, &gEdkiiMemoryProfileGuid, 
sizeof(gEdkiiMemoryProfileGuid));
   CommHeader->MessageLength = sizeof 
(SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA);
 
-  CommGetProfileData = (SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA 
*)&CommBuffer[OFFSET_OF (EFI_SMM_COMMUNICATE_HEADER, Data)];
+  CommGetProfileData = (SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA *) 
&CommBuffer[OFFSET_OF (EFI_SMM_COMMUNICATE_HEADER, Data)];
   CommGetProfileData->Header.Command      = 
SMRAM_PROFILE_COMMAND_GET_PROFILE_DATA;
   CommGetProfileData->Header.DataLength   = sizeof (*CommGetProfileData);
   CommGetProfileData->Header.ReturnStatus = (UINT64)-1;
@@ -663,6 +675,8 @@
   ASSERT_EFI_ERROR (Status);
 
   if (CommGetProfileData->Header.ReturnStatus != 0) {
+    FreePool ((VOID *) (UINTN) CommGetProfileData->ProfileBuffer);
+    FreePool (CommBuffer);
     Print (L"GetProfileData - 0x%x\n", 
CommGetProfileData->Header.ReturnStatus);
     return EFI_SUCCESS;
   }
@@ -674,6 +688,7 @@
   Print (L"======= SmramProfile end =======\n\n\n");
 
   FreePool ((VOID *) (UINTN) CommGetProfileData->ProfileBuffer);
+  FreePool (CommBuffer);
 
   return EFI_SUCCESS;
 }

Modified: trunk/edk2/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c
===================================================================
--- trunk/edk2/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c  2014-11-17 
01:53:41 UTC (rev 16395)
+++ trunk/edk2/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c  2014-11-17 
02:30:44 UTC (rev 16396)
@@ -817,6 +817,8 @@
   MEMORY_PROFILE_ALLOC_INFO_DATA    *AllocInfoData;
   EFI_MEMORY_TYPE                   ProfileMemoryIndex;
 
+  AllocInfoData = NULL;
+
   ContextData = GetMemoryProfileContext ();
   if (ContextData == NULL) {
     return FALSE;

Modified: trunk/edk2/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
===================================================================
--- trunk/edk2/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c 2014-11-17 
01:53:41 UTC (rev 16395)
+++ trunk/edk2/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c 2014-11-17 
02:30:44 UTC (rev 16396)
@@ -824,6 +824,8 @@
   MEMORY_PROFILE_ALLOC_INFO_DATA    *AllocInfoData;
   EFI_MEMORY_TYPE                   ProfileMemoryIndex;
 
+  AllocInfoData = NULL;
+
   ContextData = GetSmramProfileContext ();
   if (ContextData == NULL) {
     return FALSE;


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to