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