]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ShellPkg: Correct 3 places where memory was not being properly released by the shell.
authorjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 13 Nov 2012 16:08:52 +0000 (16:08 +0000)
committerjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 13 Nov 2012 16:08:52 +0000 (16:08 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
Reviewed-by: Liu, Jiang A <jiang.a.liu@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13938 6f19259b-4bc3-4df7-8a09-765794883524

ShellPkg/Application/Shell/ShellEnvVar.c
ShellPkg/Application/Shell/ShellParametersProtocol.c
ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c

index a4bd6a61797c5a9bee45035be2af3d44ea01bcb0..6634c6951a165e3b29dd21b3895f88473c4a6931 100644 (file)
@@ -105,7 +105,7 @@ FreeEnvironmentVariableList(
   }\r
 \r
   for ( Node = (ENV_VAR_LIST*)GetFirstNode(List)\r
-      ; IsListEmpty(List)\r
+      ; !IsListEmpty(List)\r
       ; Node = (ENV_VAR_LIST*)GetFirstNode(List)\r
      ){\r
     ASSERT(Node != NULL);\r
index e152a7a3a08dcfb9f09e1e9b9d392f293c66606e..9ce7e92605fbf7f469271212269bd16f86629fae 100644 (file)
@@ -192,6 +192,7 @@ ParseCommandLineToArgs(
   //\r
   (*Argv) = AllocateZeroPool((Count)*sizeof(CHAR16*));\r
   if (*Argv == NULL) {\r
+    SHELL_FREE_NON_NULL(TempParameter);\r
     return (EFI_OUT_OF_RESOURCES);\r
   }\r
 \r
@@ -207,6 +208,7 @@ ParseCommandLineToArgs(
     (*Argc)++;\r
   }\r
   ASSERT(Count >= (*Argc));\r
+  SHELL_FREE_NON_NULL(TempParameter);\r
   return (EFI_SUCCESS);\r
 }\r
 \r
index 971294ffd44c26ddb5a788770003b9fe4ad7c2f8..fb44768c0b0a92f40c22a408fa269af0bd2e0392 100644 (file)
@@ -129,7 +129,7 @@ ShellCommandLibDestructor (
   )\r
 {\r
   SHELL_COMMAND_INTERNAL_LIST_ENTRY *Node;\r
-  COMMAND_LIST                      *Node2;\r
+  ALIAS_LIST                        *Node2;\r
   SCRIPT_FILE_LIST                  *Node3;\r
   SHELL_MAP_LIST                    *MapNode;\r
   //\r
@@ -144,13 +144,14 @@ ShellCommandLibDestructor (
   }\r
 \r
   //\r
-  // enumerate through the init command list and free all memory\r
+  // enumerate through the alias list and free all memory\r
   //\r
   while (!IsListEmpty (&mAliasList.Link)) {\r
-    Node2 = (COMMAND_LIST *)GetFirstNode(&mAliasList.Link);\r
+    Node2 = (ALIAS_LIST *)GetFirstNode(&mAliasList.Link);\r
     RemoveEntryList(&Node2->Link);\r
     SHELL_FREE_NON_NULL(Node2->CommandString);\r
-    FreePool(Node2);\r
+    SHELL_FREE_NON_NULL(Node2->Alias);\r
+    SHELL_FREE_NON_NULL(Node2);\r
     DEBUG_CODE(Node2 = NULL;);\r
   }\r
 \r