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