Revision: 16525
          http://sourceforge.net/p/edk2/code/16525
Author:   shenshushi
Date:     2014-12-16 02:52:00 +0000 (Tue, 16 Dec 2014)
Log Message:
-----------
ShellPkg: Code refine. Add error handling code to check pointer and remove 
redundant 'ASSERT'.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Qiu Shumin <[email protected]>
Reviewed-by: Jaben Carsey <[email protected]>

Modified Paths:
--------------
    trunk/edk2/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
    trunk/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.c

Modified: 
trunk/edk2/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
===================================================================
--- trunk/edk2/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c     
2014-12-16 01:27:16 UTC (rev 16524)
+++ trunk/edk2/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c     
2014-12-16 02:52:00 UTC (rev 16525)
@@ -349,14 +349,19 @@
   }
 
   Temp = HiiGetString(mHandleParsingHiiHandle, 
STRING_TOKEN(STR_PCIRB_DUMP_PH), NULL);
-  ASSERT (Temp != NULL);
+  if (Temp == NULL) {
+    return NULL;
+  }
   Temp2 = CatSPrint(L"\r\n", Temp, PciRootBridgeIo->ParentHandle);
   FreePool(Temp);
   RetVal = Temp2;
   Temp2 = NULL;
  
   Temp = HiiGetString(mHandleParsingHiiHandle, 
STRING_TOKEN(STR_PCIRB_DUMP_SEG), NULL);
-  ASSERT (Temp != NULL);
+  if (Temp == NULL) {
+    SHELL_FREE_NON_NULL(RetVal);
+    return NULL;
+  }
   Temp2 = CatSPrint(RetVal, Temp, PciRootBridgeIo->SegmentNumber);
   FreePool(Temp);
   FreePool(RetVal);
@@ -368,7 +373,10 @@
   Status = PciRootBridgeIo->GetAttributes (PciRootBridgeIo, &Supports, 
&Attributes);
   if (!EFI_ERROR(Status)) {
     Temp = HiiGetString(mHandleParsingHiiHandle, 
STRING_TOKEN(STR_PCIRB_DUMP_ATT), NULL);
-    ASSERT (Temp != NULL);    
+    if (Temp == NULL) {
+      SHELL_FREE_NON_NULL(RetVal);
+      return NULL;
+    }    
     Temp2 = CatSPrint(RetVal, Temp, Attributes);
     FreePool(Temp);
     FreePool(RetVal);
@@ -376,7 +384,10 @@
     Temp2 = NULL;
     
     Temp = HiiGetString(mHandleParsingHiiHandle, 
STRING_TOKEN(STR_PCIRB_DUMP_SUPPORTS), NULL);
-    ASSERT (Temp != NULL);
+    if (Temp == NULL) {
+      SHELL_FREE_NON_NULL(RetVal);
+      return NULL;
+    }
     Temp2 = CatSPrint(RetVal, Temp, Supports);
     FreePool(Temp);
     FreePool(RetVal);
@@ -388,7 +399,10 @@
   Status = PciRootBridgeIo->Configuration (PciRootBridgeIo, (VOID **) 
&Configuration);
   if (!EFI_ERROR(Status) && Configuration != NULL) {
     Temp = HiiGetString(mHandleParsingHiiHandle, 
STRING_TOKEN(STR_PCIRB_DUMP_TITLE), NULL);
-    ASSERT (Temp != NULL);
+    if (Temp == NULL) {
+      SHELL_FREE_NON_NULL(RetVal);
+      return NULL;
+    }
     Temp2 = CatSPrint(RetVal, Temp, Supports);
     FreePool(Temp);
     FreePool(RetVal);
@@ -611,6 +625,9 @@
     return (CatSPrint(NULL, L"AdapterInfo"));
   }
 
+  InfoTypesBuffer   = NULL;
+  InformationBlock  = NULL;
+  
   //
   // Allocate print buffer to store data
   //
@@ -643,18 +660,31 @@
                                    );
   if (EFI_ERROR (Status)) {
     TempStr = HiiGetString (mHandleParsingHiiHandle, 
STRING_TOKEN(STR_GET_SUPP_TYPES_FAILED), NULL);
-    RetVal = CatSPrint (RetVal, TempStr, Status);
+    if (TempStr != NULL) {
+      RetVal = CatSPrint (RetVal, TempStr, Status);
+    } else {
+      goto ERROR_EXIT;
+    }  
   } else {
     TempStr = HiiGetString (mHandleParsingHiiHandle, 
STRING_TOKEN(STR_SUPP_TYPE_HEADER), NULL);
+    if (TempStr == NULL) {
+      goto ERROR_EXIT;
+    }
     RetVal = CatSPrint (RetVal, TempStr);
     SHELL_FREE_NON_NULL (TempStr);
 
     for (GuidIndex = 0; GuidIndex < InfoTypesBufferCount; GuidIndex++) {
       TempStr = HiiGetString (mHandleParsingHiiHandle, 
STRING_TOKEN(STR_GUID_NUMBER), NULL);
+      if (TempStr == NULL) {
+        goto ERROR_EXIT;
+      }
       RetVal = CatSPrint (RetVal, TempStr, (GuidIndex + 1), 
InfoTypesBuffer[GuidIndex]);
       SHELL_FREE_NON_NULL (TempStr);
 
       TempStr = HiiGetString (mHandleParsingHiiHandle, 
STRING_TOKEN(STR_GUID_STRING), NULL);
+      if (TempStr == NULL) {
+        goto ERROR_EXIT;
+      }
 
       if (CompareGuid (&InfoTypesBuffer[GuidIndex], 
&gEfiAdapterInfoMediaStateGuid)) {
         RetVal = CatSPrint (RetVal, TempStr, L"gEfiAdapterInfoMediaStateGuid");
@@ -694,10 +724,16 @@
 
       if (EFI_ERROR (Status)) {
         TempStr = HiiGetString (mHandleParsingHiiHandle, 
STRING_TOKEN(STR_GETINFO_FAILED), NULL);
+        if (TempStr == NULL) {
+          goto ERROR_EXIT;
+        }
         RetVal = CatSPrint (RetVal, TempStr, Status);
       } else {
         if (CompareGuid (&InfoTypesBuffer[GuidIndex], 
&gEfiAdapterInfoMediaStateGuid)) {
           TempStr = HiiGetString (mHandleParsingHiiHandle, 
STRING_TOKEN(STR_MEDIA_STATE), NULL);
+          if (TempStr == NULL) {
+            goto ERROR_EXIT;
+          }
           RetVal = CatSPrint (
                      RetVal,
                      TempStr,
@@ -706,6 +742,9 @@
                      );
         } else if (CompareGuid (&InfoTypesBuffer[GuidIndex], 
&gEfiAdapterInfoNetworkBootGuid)) {
           TempStr = HiiGetString (mHandleParsingHiiHandle, 
STRING_TOKEN(STR_NETWORK_BOOT_INFO), NULL);
+          if (TempStr == NULL) {
+            goto ERROR_EXIT;
+          }
           RetVal = CatSPrint (
                      RetVal,
                      TempStr,
@@ -720,6 +759,9 @@
                      );
         } else if (CompareGuid (&InfoTypesBuffer[GuidIndex], 
&gEfiAdapterInfoSanMacAddressGuid) == TRUE) { 
           TempStr = HiiGetString (mHandleParsingHiiHandle, 
STRING_TOKEN(STR_SAN_MAC_ADDRESS_INFO), NULL);
+          if (TempStr == NULL) {
+            goto ERROR_EXIT;
+          }
           RetVal = CatSPrint (
                      RetVal,
                      TempStr,
@@ -732,6 +774,9 @@
                      );   
         } else {
           TempStr = HiiGetString (mHandleParsingHiiHandle, 
STRING_TOKEN(STR_UNKNOWN_INFO_TYPE), NULL);
+          if (TempStr == NULL) {
+            goto ERROR_EXIT;
+          }
           RetVal = CatSPrint (RetVal, TempStr, &InfoTypesBuffer[GuidIndex]);
         }
       }
@@ -740,7 +785,14 @@
     }
   }
 
+  SHELL_FREE_NON_NULL (InfoTypesBuffer);
   return RetVal;
+
+ERROR_EXIT:
+  SHELL_FREE_NON_NULL (RetVal);
+  SHELL_FREE_NON_NULL (InfoTypesBuffer);
+  SHELL_FREE_NON_NULL (InformationBlock);
+  return NULL;
 }
 //
 // Put the information on the NT32 protocol GUIDs here so we are not dependant 
on the Nt32Pkg

Modified: trunk/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.c
===================================================================
--- trunk/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.c     2014-12-16 
01:27:16 UTC (rev 16524)
+++ trunk/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.c     2014-12-16 
02:52:00 UTC (rev 16525)
@@ -2079,7 +2079,6 @@
           break;
       }
     } else if (GetItemValue != 0 && CurrentItemPackage != NULL && 
!InternalIsFlag(Argv[LoopCounter], AlwaysAllowNumbers, (CONST 
BOOLEAN)(CurrentItemPackage->Type == TypeTimeValue))) {
-      ASSERT(CurrentItemPackage != NULL);
       //
       // get the item VALUE for a previous flag
       //


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to