[edk2] [PATCH] MdeModulePkg/SmmCore: Fix memory leak on Profile unregistered.

Jiewen Yao posted 1 patch 7 years, 7 months ago
Failed in applying to current master (apply log)
MdeModulePkg/Core/PiSmmCore/SmiHandlerProfile.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
[edk2] [PATCH] MdeModulePkg/SmmCore: Fix memory leak on Profile unregistered.
Posted by Jiewen Yao 7 years, 7 months ago
Issue reported at bugzillar 445.

Cc: Jeff Fan <jeff.fan@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
---
 MdeModulePkg/Core/PiSmmCore/SmiHandlerProfile.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/MdeModulePkg/Core/PiSmmCore/SmiHandlerProfile.c b/MdeModulePkg/Core/PiSmmCore/SmiHandlerProfile.c
index 1e36039..ad3b54a 100644
--- a/MdeModulePkg/Core/PiSmmCore/SmiHandlerProfile.c
+++ b/MdeModulePkg/Core/PiSmmCore/SmiHandlerProfile.c
@@ -1186,7 +1186,9 @@ SmiHandlerProfileRegisterHandler (
 
   SmiEntry = SmmCoreFindHardwareSmiEntry (HandlerGuid, TRUE);
   if (SmiEntry == NULL) {
-    FreePool (SmiHandler->Context);
+    if (SmiHandler->Context != NULL) {
+      FreePool (SmiHandler->Context);
+    }
     FreePool (SmiHandler);
     return EFI_OUT_OF_RESOURCES;
   }
@@ -1277,6 +1279,9 @@ SmiHandlerProfileUnregisterHandler (
   SmiHandler = TargetSmiHandler;
 
   RemoveEntryList (&SmiHandler->Link);
+  if (SmiHandler->Context != NULL) {
+    FreePool (SmiHandler->Context);
+  }
   FreePool (SmiHandler);
 
   if (IsListEmpty (&SmiEntry->SmiHandlers)) {
-- 
2.7.4.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] MdeModulePkg/SmmCore: Fix memory leak on Profile unregistered.
Posted by Fan, Jeff 7 years, 7 months ago
Reviewed-by: Jeff Fan <jeff.fan@intel.com>

-----Original Message-----
From: Yao, Jiewen 
Sent: Monday, March 27, 2017 11:02 PM
To: edk2-devel@lists.01.org
Cc: Fan, Jeff; Tian, Feng; Zeng, Star; Bret Barkelew
Subject: [PATCH] MdeModulePkg/SmmCore: Fix memory leak on Profile unregistered.

Issue reported at bugzillar 445.

Cc: Jeff Fan <jeff.fan@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
---
 MdeModulePkg/Core/PiSmmCore/SmiHandlerProfile.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/MdeModulePkg/Core/PiSmmCore/SmiHandlerProfile.c b/MdeModulePkg/Core/PiSmmCore/SmiHandlerProfile.c
index 1e36039..ad3b54a 100644
--- a/MdeModulePkg/Core/PiSmmCore/SmiHandlerProfile.c
+++ b/MdeModulePkg/Core/PiSmmCore/SmiHandlerProfile.c
@@ -1186,7 +1186,9 @@ SmiHandlerProfileRegisterHandler (
 
   SmiEntry = SmmCoreFindHardwareSmiEntry (HandlerGuid, TRUE);
   if (SmiEntry == NULL) {
-    FreePool (SmiHandler->Context);
+    if (SmiHandler->Context != NULL) {
+      FreePool (SmiHandler->Context);
+    }
     FreePool (SmiHandler);
     return EFI_OUT_OF_RESOURCES;
   }
@@ -1277,6 +1279,9 @@ SmiHandlerProfileUnregisterHandler (
   SmiHandler = TargetSmiHandler;
 
   RemoveEntryList (&SmiHandler->Link);
+  if (SmiHandler->Context != NULL) {
+    FreePool (SmiHandler->Context);
+  }
   FreePool (SmiHandler);
 
   if (IsListEmpty (&SmiEntry->SmiHandlers)) {
-- 
2.7.4.windows.1

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