Original code refers FreePoolHdr without check Status. It is obvious wrong and 
has risk.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Zeng, Star <star.z...@intel.com>
Reviewed-by: Yao, Jiewen <jiewen....@intel.com>
Cc: Fan, Jeff <jeff....@intel.com>
Cc: Kinney, Michael D <michael.d.kin...@intel.com>
---
 MdeModulePkg/Core/PiSmmCore/Pool.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/MdeModulePkg/Core/PiSmmCore/Pool.c 
b/MdeModulePkg/Core/PiSmmCore/Pool.c
index 34dcc93..8b696d1 100644
--- a/MdeModulePkg/Core/PiSmmCore/Pool.c
+++ b/MdeModulePkg/Core/PiSmmCore/Pool.c
@@ -228,7 +228,9 @@ SmmInternalAllocatePool (
   }
 
   Status = InternalAllocPoolByIndex (PoolIndex, &FreePoolHdr);
-  *Buffer = &FreePoolHdr->Header + 1;
+  if (!EFI_ERROR(Status)) {
+    *Buffer = &FreePoolHdr->Header + 1;
+  }
   return Status;
 }
 
-- 
1.9.5.msysgit.0

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to