]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
ShellPkg: Code refine. Add error handling code to check pointer and remove redundant...
[mirror_edk2.git] / ShellPkg / Library / UefiHandleParsingLib / UefiHandleParsingLib.c
index 9c6cf61af5ce917e64eaa7700edb9673e45465a9..027f5cba75e42c3e526816a0ee29915c14c01698 100644 (file)
@@ -349,14 +349,19 @@ PciRootBridgeIoDumpInformation(
   }\r
 \r
   Temp = HiiGetString(mHandleParsingHiiHandle, STRING_TOKEN(STR_PCIRB_DUMP_PH), NULL);\r
-  ASSERT (Temp != NULL);\r
+  if (Temp == NULL) {\r
+    return NULL;\r
+  }\r
   Temp2 = CatSPrint(L"\r\n", Temp, PciRootBridgeIo->ParentHandle);\r
   FreePool(Temp);\r
   RetVal = Temp2;\r
   Temp2 = NULL;\r
  \r
   Temp = HiiGetString(mHandleParsingHiiHandle, STRING_TOKEN(STR_PCIRB_DUMP_SEG), NULL);\r
-  ASSERT (Temp != NULL);\r
+  if (Temp == NULL) {\r
+    SHELL_FREE_NON_NULL(RetVal);\r
+    return NULL;\r
+  }\r
   Temp2 = CatSPrint(RetVal, Temp, PciRootBridgeIo->SegmentNumber);\r
   FreePool(Temp);\r
   FreePool(RetVal);\r
@@ -368,7 +373,10 @@ PciRootBridgeIoDumpInformation(
   Status = PciRootBridgeIo->GetAttributes (PciRootBridgeIo, &Supports, &Attributes);\r
   if (!EFI_ERROR(Status)) {\r
     Temp = HiiGetString(mHandleParsingHiiHandle, STRING_TOKEN(STR_PCIRB_DUMP_ATT), NULL);\r
-    ASSERT (Temp != NULL);    \r
+    if (Temp == NULL) {\r
+      SHELL_FREE_NON_NULL(RetVal);\r
+      return NULL;\r
+    }    \r
     Temp2 = CatSPrint(RetVal, Temp, Attributes);\r
     FreePool(Temp);\r
     FreePool(RetVal);\r
@@ -376,7 +384,10 @@ PciRootBridgeIoDumpInformation(
     Temp2 = NULL;\r
     \r
     Temp = HiiGetString(mHandleParsingHiiHandle, STRING_TOKEN(STR_PCIRB_DUMP_SUPPORTS), NULL);\r
-    ASSERT (Temp != NULL);\r
+    if (Temp == NULL) {\r
+      SHELL_FREE_NON_NULL(RetVal);\r
+      return NULL;\r
+    }\r
     Temp2 = CatSPrint(RetVal, Temp, Supports);\r
     FreePool(Temp);\r
     FreePool(RetVal);\r
@@ -388,7 +399,10 @@ PciRootBridgeIoDumpInformation(
   Status = PciRootBridgeIo->Configuration (PciRootBridgeIo, (VOID **) &Configuration);\r
   if (!EFI_ERROR(Status) && Configuration != NULL) {\r
     Temp = HiiGetString(mHandleParsingHiiHandle, STRING_TOKEN(STR_PCIRB_DUMP_TITLE), NULL);\r
-    ASSERT (Temp != NULL);\r
+    if (Temp == NULL) {\r
+      SHELL_FREE_NON_NULL(RetVal);\r
+      return NULL;\r
+    }\r
     Temp2 = CatSPrint(RetVal, Temp, Supports);\r
     FreePool(Temp);\r
     FreePool(RetVal);\r
@@ -611,6 +625,9 @@ AdapterInformationDumpInformation (
     return (CatSPrint(NULL, L"AdapterInfo"));\r
   }\r
 \r
+  InfoTypesBuffer   = NULL;\r
+  InformationBlock  = NULL;\r
+  \r
   //\r
   // Allocate print buffer to store data\r
   //\r
@@ -643,18 +660,31 @@ AdapterInformationDumpInformation (
                                    );\r
   if (EFI_ERROR (Status)) {\r
     TempStr = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN(STR_GET_SUPP_TYPES_FAILED), NULL);\r
-    RetVal = CatSPrint (RetVal, TempStr, Status);\r
+    if (TempStr != NULL) {\r
+      RetVal = CatSPrint (RetVal, TempStr, Status);\r
+    } else {\r
+      goto ERROR_EXIT;\r
+    }  \r
   } else {\r
     TempStr = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN(STR_SUPP_TYPE_HEADER), NULL);\r
+    if (TempStr == NULL) {\r
+      goto ERROR_EXIT;\r
+    }\r
     RetVal = CatSPrint (RetVal, TempStr);\r
     SHELL_FREE_NON_NULL (TempStr);\r
 \r
     for (GuidIndex = 0; GuidIndex < InfoTypesBufferCount; GuidIndex++) {\r
       TempStr = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN(STR_GUID_NUMBER), NULL);\r
+      if (TempStr == NULL) {\r
+        goto ERROR_EXIT;\r
+      }\r
       RetVal = CatSPrint (RetVal, TempStr, (GuidIndex + 1), InfoTypesBuffer[GuidIndex]);\r
       SHELL_FREE_NON_NULL (TempStr);\r
 \r
       TempStr = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN(STR_GUID_STRING), NULL);\r
+      if (TempStr == NULL) {\r
+        goto ERROR_EXIT;\r
+      }\r
 \r
       if (CompareGuid (&InfoTypesBuffer[GuidIndex], &gEfiAdapterInfoMediaStateGuid)) {\r
         RetVal = CatSPrint (RetVal, TempStr, L"gEfiAdapterInfoMediaStateGuid");\r
@@ -694,10 +724,16 @@ AdapterInformationDumpInformation (
 \r
       if (EFI_ERROR (Status)) {\r
         TempStr = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN(STR_GETINFO_FAILED), NULL);\r
+        if (TempStr == NULL) {\r
+          goto ERROR_EXIT;\r
+        }\r
         RetVal = CatSPrint (RetVal, TempStr, Status);\r
       } else {\r
         if (CompareGuid (&InfoTypesBuffer[GuidIndex], &gEfiAdapterInfoMediaStateGuid)) {\r
           TempStr = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN(STR_MEDIA_STATE), NULL);\r
+          if (TempStr == NULL) {\r
+            goto ERROR_EXIT;\r
+          }\r
           RetVal = CatSPrint (\r
                      RetVal,\r
                      TempStr,\r
@@ -706,6 +742,9 @@ AdapterInformationDumpInformation (
                      );\r
         } else if (CompareGuid (&InfoTypesBuffer[GuidIndex], &gEfiAdapterInfoNetworkBootGuid)) {\r
           TempStr = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN(STR_NETWORK_BOOT_INFO), NULL);\r
+          if (TempStr == NULL) {\r
+            goto ERROR_EXIT;\r
+          }\r
           RetVal = CatSPrint (\r
                      RetVal,\r
                      TempStr,\r
@@ -720,6 +759,9 @@ AdapterInformationDumpInformation (
                      );\r
         } else if (CompareGuid (&InfoTypesBuffer[GuidIndex], &gEfiAdapterInfoSanMacAddressGuid) == TRUE) { \r
           TempStr = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN(STR_SAN_MAC_ADDRESS_INFO), NULL);\r
+          if (TempStr == NULL) {\r
+            goto ERROR_EXIT;\r
+          }\r
           RetVal = CatSPrint (\r
                      RetVal,\r
                      TempStr,\r
@@ -732,6 +774,9 @@ AdapterInformationDumpInformation (
                      );   \r
         } else {\r
           TempStr = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN(STR_UNKNOWN_INFO_TYPE), NULL);\r
+          if (TempStr == NULL) {\r
+            goto ERROR_EXIT;\r
+          }\r
           RetVal = CatSPrint (RetVal, TempStr, &InfoTypesBuffer[GuidIndex]);\r
         }\r
       }\r
@@ -740,7 +785,14 @@ AdapterInformationDumpInformation (
     }\r
   }\r
 \r
+  SHELL_FREE_NON_NULL (InfoTypesBuffer);\r
   return RetVal;\r
+\r
+ERROR_EXIT:\r
+  SHELL_FREE_NON_NULL (RetVal);\r
+  SHELL_FREE_NON_NULL (InfoTypesBuffer);\r
+  SHELL_FREE_NON_NULL (InformationBlock);\r
+  return NULL;\r
 }\r
 //\r
 // Put the information on the NT32 protocol GUIDs here so we are not dependant on the Nt32Pkg\r