[edk2] [Patch] MdeModulePkg HiiDataBase: Fix the potential NULL pointer reference

Liming Gao posted 1 patch 6 years, 3 months ago
Failed in applying to current master (apply log)
MdeModulePkg/Universal/HiiDatabaseDxe/Database.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
[edk2] [Patch] MdeModulePkg HiiDataBase: Fix the potential NULL pointer reference
Posted by Liming Gao 6 years, 3 months ago
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
---
 MdeModulePkg/Universal/HiiDatabaseDxe/Database.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
index c10134b8e6..e062094f79 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
@@ -845,7 +845,7 @@ UpdateDefaultSettingInFormPackage (
         //
         EfiVarStoreList   = ReallocatePool (EfiVarStoreMaxNum * sizeof (UINTN), (EfiVarStoreMaxNum + BASE_NUMBER) * sizeof (UINTN), EfiVarStoreList);
         if (EfiVarStoreList == NULL) {
-          break;
+          goto Done;
         }
         EfiVarStoreMaxNum = EfiVarStoreMaxNum + BASE_NUMBER;
       }
@@ -874,7 +874,7 @@ UpdateDefaultSettingInFormPackage (
         //
         DefaultIdList   = ReallocatePool (DefaultIdMaxNum * sizeof (UINT16), (DefaultIdMaxNum + BASE_NUMBER) * sizeof (UINT16), DefaultIdList);
         if (DefaultIdList == NULL) {
-          break;
+          goto Done;
         }
         DefaultIdMaxNum = DefaultIdMaxNum + BASE_NUMBER;
       }
@@ -1046,8 +1046,10 @@ UpdateDefaultSettingInFormPackage (
   }
 
 Done:
-  for (Index = 0; Index < EfiVarStoreNumber; Index ++) {
-    FreePool (EfiVarStoreList [Index]);
+  if (EfiVarStoreList != NULL) { 
+    for (Index = 0; Index < EfiVarStoreNumber; Index ++) {
+      FreePool (EfiVarStoreList [Index]);
+    }
   }
   return;
 }
-- 
2.11.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [Patch] MdeModulePkg HiiDataBase: Fix the potential NULL pointer reference
Posted by Zeng, Star 6 years, 3 months ago
Could you add more information about this patch between 14b351e2ed8586f144dd3cd2e0a25082c1a32837?

With that, Reviewed-by: Star Zeng <star.zeng@intel.com>


Thanks,
Star
-----Original Message-----
From: Gao, Liming 
Sent: Wednesday, December 27, 2017 10:31 AM
To: edk2-devel@lists.01.org
Cc: Zeng, Star <star.zeng@intel.com>
Subject: [Patch] MdeModulePkg HiiDataBase: Fix the potential NULL pointer reference

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
---
 MdeModulePkg/Universal/HiiDatabaseDxe/Database.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
index c10134b8e6..e062094f79 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
@@ -845,7 +845,7 @@ UpdateDefaultSettingInFormPackage (
         //
         EfiVarStoreList   = ReallocatePool (EfiVarStoreMaxNum * sizeof (UINTN), (EfiVarStoreMaxNum + BASE_NUMBER) * sizeof (UINTN), EfiVarStoreList);
         if (EfiVarStoreList == NULL) {
-          break;
+          goto Done;
         }
         EfiVarStoreMaxNum = EfiVarStoreMaxNum + BASE_NUMBER;
       }
@@ -874,7 +874,7 @@ UpdateDefaultSettingInFormPackage (
         //
         DefaultIdList   = ReallocatePool (DefaultIdMaxNum * sizeof (UINT16), (DefaultIdMaxNum + BASE_NUMBER) * sizeof (UINT16), DefaultIdList);
         if (DefaultIdList == NULL) {
-          break;
+          goto Done;
         }
         DefaultIdMaxNum = DefaultIdMaxNum + BASE_NUMBER;
       }
@@ -1046,8 +1046,10 @@ UpdateDefaultSettingInFormPackage (
   }
 
 Done:
-  for (Index = 0; Index < EfiVarStoreNumber; Index ++) {
-    FreePool (EfiVarStoreList [Index]);
+  if (EfiVarStoreList != NULL) { 
+    for (Index = 0; Index < EfiVarStoreNumber; Index ++) {
+      FreePool (EfiVarStoreList [Index]);
+    }
   }
   return;
 }
-- 
2.11.0.windows.1

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