]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Fix potential memory leak issue.
authorlzeng14 <lzeng14@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 18 Jun 2012 01:34:27 +0000 (01:34 +0000)
committerlzeng14 <lzeng14@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 18 Jun 2012 01:34:27 +0000 (01:34 +0000)
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13458 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceSmm.c

index 6de22d4a1cd2ff3384011985b71ec05bfbb81fb3..771c7f95d97a622e56241920184b179094f9f12c 100644 (file)
@@ -101,14 +101,15 @@ FpdtStatusCodeListenerSmm (
       // Try to allocate big SMRAM data to store Boot record. \r
       //\r
       if (mSmramIsOutOfResource) {\r
+        ReleaseSpinLock (&mSmmFpdtLock);\r
         return EFI_OUT_OF_RESOURCES;\r
       }\r
-      NewRecordBuffer = AllocatePool (mBootRecordSize + Data->Size + EXTENSION_RECORD_SIZE); \r
+      NewRecordBuffer = ReallocatePool (mBootRecordSize, mBootRecordSize + Data->Size + EXTENSION_RECORD_SIZE, mBootRecordBuffer); \r
       if (NewRecordBuffer == NULL) {\r
+        ReleaseSpinLock (&mSmmFpdtLock);\r
         mSmramIsOutOfResource = TRUE;\r
         return EFI_OUT_OF_RESOURCES;\r
       }\r
-      CopyMem (NewRecordBuffer, mBootRecordBuffer, mBootRecordSize);\r
       mBootRecordBuffer  = NewRecordBuffer;\r
       mBootRecordMaxSize = mBootRecordSize + Data->Size + EXTENSION_RECORD_SIZE;\r
     }\r