ShellPkg: CodeQL Fixes

Includes changes across the module for the following CodeQL rules:
 - cpp/comparison-with-wider-type
 - cpp/overflow-buffer
 - cpp/redundant-null-check-param
 - cpp/uselesstest

Co-authored-by: Taylor Beebe <taylor.d.beebe@gmail.com>

Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
This commit is contained in:
Oliver Smith-Denny 2024-10-03 10:31:31 -07:00 committed by mergify[bot]
parent c80c222198
commit 334f574886
21 changed files with 225 additions and 60 deletions

View File

@ -1331,7 +1331,7 @@ DoStartupScript (
} }
Status = RunShellCommand (FileStringPath, &CalleeStatus); Status = RunShellCommand (FileStringPath, &CalleeStatus);
if ((!EFI_ERROR (Status)) && (ShellInfoObject.ShellInitSettings.BitUnion.Bits.Exit == TRUE)) { if (ShellInfoObject.ShellInitSettings.BitUnion.Bits.Exit == TRUE) {
ShellCommandRegisterExit (gEfiShellProtocol->BatchIsActive (), (UINT64)CalleeStatus); ShellCommandRegisterExit (gEfiShellProtocol->BatchIsActive (), (UINT64)CalleeStatus);
} }

View File

@ -299,6 +299,9 @@ LoadedImageProtocolDumpInformation (
SHELL_FREE_NON_NULL (Temp); SHELL_FREE_NON_NULL (Temp);
SHELL_FREE_NON_NULL (FileName); SHELL_FREE_NON_NULL (FileName);
if (RetVal == NULL) {
return NULL;
}
} }
Temp = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN (STR_LI_DUMP_MAIN), NULL); Temp = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN (STR_LI_DUMP_MAIN), NULL);
@ -309,7 +312,7 @@ LoadedImageProtocolDumpInformation (
PdbFileName = PeCoffLoaderGetPdbPointer (LoadedImage->ImageBase); PdbFileName = PeCoffLoaderGetPdbPointer (LoadedImage->ImageBase);
DataType = ConvertMemoryType (LoadedImage->ImageDataType); DataType = ConvertMemoryType (LoadedImage->ImageDataType);
CodeType = ConvertMemoryType (LoadedImage->ImageCodeType); CodeType = ConvertMemoryType (LoadedImage->ImageCodeType);
if ((PdbFileName != NULL) && (DataType != NULL) && (CodeType != NULL) && (FilePath != NULL)) {
RetVal = CatSPrint ( RetVal = CatSPrint (
RetVal, RetVal,
Temp, Temp,
@ -327,6 +330,7 @@ LoadedImageProtocolDumpInformation (
DataType, DataType,
LoadedImage->Unload LoadedImage->Unload
); );
}
SHELL_FREE_NON_NULL (Temp); SHELL_FREE_NON_NULL (Temp);
SHELL_FREE_NON_NULL (FilePath); SHELL_FREE_NON_NULL (FilePath);
@ -389,6 +393,10 @@ GraphicsOutputProtocolDumpInformation (
} }
Fmt = ConvertPixelFormat (GraphicsOutput->Mode->Info->PixelFormat); Fmt = ConvertPixelFormat (GraphicsOutput->Mode->Info->PixelFormat);
if (Fmt == NULL) {
SHELL_FREE_NON_NULL (Temp);
return NULL;
}
RetVal = CatSPrint ( RetVal = CatSPrint (
NULL, NULL,
@ -409,6 +417,9 @@ GraphicsOutputProtocolDumpInformation (
); );
SHELL_FREE_NON_NULL (Temp); SHELL_FREE_NON_NULL (Temp);
if (RetVal == NULL) {
goto EXIT;
}
Temp = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN (STR_GOP_RES_LIST_MAIN), NULL); Temp = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN (STR_GOP_RES_LIST_MAIN), NULL);
if (Temp == NULL) { if (Temp == NULL) {
@ -509,6 +520,9 @@ EdidDiscoveredProtocolDumpInformation (
RetVal = CatSPrint (NULL, Temp, EdidDiscovered->SizeOfEdid); RetVal = CatSPrint (NULL, Temp, EdidDiscovered->SizeOfEdid);
SHELL_FREE_NON_NULL (Temp); SHELL_FREE_NON_NULL (Temp);
if (RetVal == NULL) {
return NULL;
}
if (EdidDiscovered->SizeOfEdid != 0) { if (EdidDiscovered->SizeOfEdid != 0) {
Temp = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN (STR_EDID_DISCOVERED_DATA), NULL); Temp = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN (STR_EDID_DISCOVERED_DATA), NULL);
@ -575,6 +589,9 @@ EdidActiveProtocolDumpInformation (
RetVal = CatSPrint (NULL, Temp, EdidActive->SizeOfEdid); RetVal = CatSPrint (NULL, Temp, EdidActive->SizeOfEdid);
SHELL_FREE_NON_NULL (Temp); SHELL_FREE_NON_NULL (Temp);
if (RetVal == NULL) {
return NULL;
}
if (EdidActive->SizeOfEdid != 0) { if (EdidActive->SizeOfEdid != 0) {
Temp = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN (STR_EDID_ACTIVE_DATA), NULL); Temp = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN (STR_EDID_ACTIVE_DATA), NULL);
@ -790,6 +807,9 @@ TxtOutProtocolDumpInformation (
Size = (Dev->Mode->MaxMode + 1) * 80; Size = (Dev->Mode->MaxMode + 1) * 80;
RetVal = AllocateZeroPool (Size); RetVal = AllocateZeroPool (Size);
if (RetVal == NULL) {
return NULL;
}
Temp = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN (STR_TXT_OUT_DUMP_HEADER), NULL); Temp = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN (STR_TXT_OUT_DUMP_HEADER), NULL);
if (Temp != NULL) { if (Temp != NULL) {
@ -801,6 +821,11 @@ TxtOutProtocolDumpInformation (
// Dump TextOut Info // Dump TextOut Info
// //
Temp = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN (STR_TXT_OUT_DUMP_LINE), NULL); Temp = HiiGetString (mHandleParsingHiiHandle, STRING_TOKEN (STR_TXT_OUT_DUMP_LINE), NULL);
if (Temp == NULL) {
FreePool (RetVal);
return NULL;
}
for (Index = 0; Index < Dev->Mode->MaxMode; Index++) { for (Index = 0; Index < Dev->Mode->MaxMode; Index++) {
Status = Dev->QueryMode (Dev, Index, &Col, &Row); Status = Dev->QueryMode (Dev, Index, &Col, &Row);
NewSize = Size - StrSize (RetVal); NewSize = Size - StrSize (RetVal);
@ -1056,6 +1081,10 @@ BusSpecificDriverOverrideProtocolDumpInformation (
ConvertHandleToHandleIndex (ImageHandle), ConvertHandleToHandleIndex (ImageHandle),
ConvertDevicePathToText (LoadedImage->FilePath, TRUE, TRUE) ConvertDevicePathToText (LoadedImage->FilePath, TRUE, TRUE)
); );
if (TempRetVal == NULL) {
break;
}
StrnCatGrow (&RetVal, &Size, TempRetVal, 0); StrnCatGrow (&RetVal, &Size, TempRetVal, 0);
SHELL_FREE_NON_NULL (TempRetVal); SHELL_FREE_NON_NULL (TempRetVal);
} }
@ -1287,6 +1316,11 @@ PciIoProtocolDumpInformation (
Pci.Hdr.ClassCode[1], Pci.Hdr.ClassCode[1],
Pci.Hdr.ClassCode[2] Pci.Hdr.ClassCode[2]
); );
if (RetVal == NULL) {
FreePool (GetString);
return NULL;
}
for (Index = 0; Index < sizeof (Pci); Index++) { for (Index = 0; Index < sizeof (Pci); Index++) {
if ((Index % 0x10) == 0) { if ((Index % 0x10) == 0) {
TempRetVal = CatSPrint (RetVal, L"\r\n %02x", *((UINT8 *)(&Pci) + Index)); TempRetVal = CatSPrint (RetVal, L"\r\n %02x", *((UINT8 *)(&Pci) + Index));
@ -1435,6 +1469,10 @@ AdapterInformationDumpInformation (
} }
RetVal = CatSPrint (NULL, TempStr); RetVal = CatSPrint (NULL, TempStr);
if (RetVal == NULL) {
goto ERROR_EXIT;
}
SHELL_FREE_NON_NULL (TempStr); SHELL_FREE_NON_NULL (TempStr);
for (GuidIndex = 0; GuidIndex < InfoTypesBufferCount; GuidIndex++) { for (GuidIndex = 0; GuidIndex < InfoTypesBufferCount; GuidIndex++) {
@ -1726,6 +1764,10 @@ FirmwareManagementDumpInformation (
} }
RetVal = CatSPrint (NULL, TempStr, ImageInfoSize); RetVal = CatSPrint (NULL, TempStr, ImageInfoSize);
if (RetVal == NULL) {
goto ERROR_EXIT;
}
SHELL_FREE_NON_NULL (TempStr); SHELL_FREE_NON_NULL (TempStr);
// //
@ -1823,37 +1865,65 @@ FirmwareManagementDumpInformation (
} else { } else {
AttributeSettingStr = CatSPrint (NULL, L"("); AttributeSettingStr = CatSPrint (NULL, L"(");
if (AttributeSettingStr == NULL) {
goto ERROR_EXIT;
}
if ((AttributeSetting & IMAGE_ATTRIBUTE_IMAGE_UPDATABLE) != 0x0) { if ((AttributeSetting & IMAGE_ATTRIBUTE_IMAGE_UPDATABLE) != 0x0) {
TempRetVal = CatSPrint (AttributeSettingStr, L" IMAGE_ATTRIBUTE_IMAGE_UPDATABLE"); TempRetVal = CatSPrint (AttributeSettingStr, L" IMAGE_ATTRIBUTE_IMAGE_UPDATABLE");
if (TempRetVal == NULL) {
goto ERROR_EXIT;
}
SHELL_FREE_NON_NULL (AttributeSettingStr); SHELL_FREE_NON_NULL (AttributeSettingStr);
AttributeSettingStr = TempRetVal; AttributeSettingStr = TempRetVal;
} }
if ((AttributeSetting & IMAGE_ATTRIBUTE_RESET_REQUIRED) != 0x0) { if ((AttributeSetting & IMAGE_ATTRIBUTE_RESET_REQUIRED) != 0x0) {
TempRetVal = CatSPrint (AttributeSettingStr, L" IMAGE_ATTRIBUTE_RESET_REQUIRED"); TempRetVal = CatSPrint (AttributeSettingStr, L" IMAGE_ATTRIBUTE_RESET_REQUIRED");
if (TempRetVal == NULL) {
goto ERROR_EXIT;
}
SHELL_FREE_NON_NULL (AttributeSettingStr); SHELL_FREE_NON_NULL (AttributeSettingStr);
AttributeSettingStr = TempRetVal; AttributeSettingStr = TempRetVal;
} }
if ((AttributeSetting & IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED) != 0x0) { if ((AttributeSetting & IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED) != 0x0) {
TempRetVal = CatSPrint (AttributeSettingStr, L" IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED"); TempRetVal = CatSPrint (AttributeSettingStr, L" IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED");
if (TempRetVal == NULL) {
goto ERROR_EXIT;
}
SHELL_FREE_NON_NULL (AttributeSettingStr); SHELL_FREE_NON_NULL (AttributeSettingStr);
AttributeSettingStr = TempRetVal; AttributeSettingStr = TempRetVal;
} }
if ((AttributeSetting & IMAGE_ATTRIBUTE_IN_USE) != 0x0) { if ((AttributeSetting & IMAGE_ATTRIBUTE_IN_USE) != 0x0) {
TempRetVal = CatSPrint (AttributeSettingStr, L" IMAGE_ATTRIBUTE_IN_USE"); TempRetVal = CatSPrint (AttributeSettingStr, L" IMAGE_ATTRIBUTE_IN_USE");
if (TempRetVal == NULL) {
goto ERROR_EXIT;
}
SHELL_FREE_NON_NULL (AttributeSettingStr); SHELL_FREE_NON_NULL (AttributeSettingStr);
AttributeSettingStr = TempRetVal; AttributeSettingStr = TempRetVal;
} }
if ((AttributeSetting & IMAGE_ATTRIBUTE_UEFI_IMAGE) != 0x0) { if ((AttributeSetting & IMAGE_ATTRIBUTE_UEFI_IMAGE) != 0x0) {
TempRetVal = CatSPrint (AttributeSettingStr, L" IMAGE_ATTRIBUTE_UEFI_IMAGE"); TempRetVal = CatSPrint (AttributeSettingStr, L" IMAGE_ATTRIBUTE_UEFI_IMAGE");
if (TempRetVal == NULL) {
goto ERROR_EXIT;
}
SHELL_FREE_NON_NULL (AttributeSettingStr); SHELL_FREE_NON_NULL (AttributeSettingStr);
AttributeSettingStr = TempRetVal; AttributeSettingStr = TempRetVal;
} }
TempRetVal = CatSPrint (AttributeSettingStr, L" )"); TempRetVal = CatSPrint (AttributeSettingStr, L" )");
if (TempRetVal == NULL) {
goto ERROR_EXIT;
}
SHELL_FREE_NON_NULL (AttributeSettingStr); SHELL_FREE_NON_NULL (AttributeSettingStr);
AttributeSettingStr = TempRetVal; AttributeSettingStr = TempRetVal;
} }
@ -2848,6 +2918,10 @@ GetStringNameFromHandle (
); );
if (!EFI_ERROR (Status)) { if (!EFI_ERROR (Status)) {
BestLang = GetBestLanguageForDriver (CompNameStruct->SupportedLanguages, Language, FALSE); BestLang = GetBestLanguageForDriver (CompNameStruct->SupportedLanguages, Language, FALSE);
if (BestLang == NULL) {
return (NULL);
}
Status = CompNameStruct->GetDriverName (CompNameStruct, BestLang, &RetVal); Status = CompNameStruct->GetDriverName (CompNameStruct, BestLang, &RetVal);
if (BestLang != NULL) { if (BestLang != NULL) {
FreePool (BestLang); FreePool (BestLang);
@ -2869,6 +2943,10 @@ GetStringNameFromHandle (
); );
if (!EFI_ERROR (Status)) { if (!EFI_ERROR (Status)) {
BestLang = GetBestLanguageForDriver (CompNameStruct->SupportedLanguages, Language, FALSE); BestLang = GetBestLanguageForDriver (CompNameStruct->SupportedLanguages, Language, FALSE);
if (BestLang == NULL) {
return (NULL);
}
Status = CompNameStruct->GetDriverName (CompNameStruct, BestLang, &RetVal); Status = CompNameStruct->GetDriverName (CompNameStruct, BestLang, &RetVal);
if (BestLang != NULL) { if (BestLang != NULL) {
FreePool (BestLang); FreePool (BestLang);

View File

@ -206,6 +206,10 @@ GetBootOptionCrc (
); );
if (Status == EFI_BUFFER_TOO_SMALL) { if (Status == EFI_BUFFER_TOO_SMALL) {
Buffer = AllocateZeroPool (BufferSize); Buffer = AllocateZeroPool (BufferSize);
if (Buffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
Status = gRT->GetVariable ( Status = gRT->GetVariable (
VariableName, VariableName,
(EFI_GUID *)&gEfiGlobalVariableGuid, (EFI_GUID *)&gEfiGlobalVariableGuid,
@ -428,6 +432,11 @@ BcfgMod (
if (BcfgOperation->Type == BcfgTypeModh) { if (BcfgOperation->Type == BcfgTypeModh) {
CurHandle = ConvertHandleIndexToHandle (BcfgOperation->HandleIndex); CurHandle = ConvertHandleIndexToHandle (BcfgOperation->HandleIndex);
if (CurHandle == NULL) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellBcfgHiiHandle, L"bcfg", L"Handle Number");
return (SHELL_INVALID_PARAMETER);
}
ShellStatus = GetDevicePathByHandle (CurHandle, BcfgOperation->Target, &DevicePathBuffer); ShellStatus = GetDevicePathByHandle (CurHandle, BcfgOperation->Target, &DevicePathBuffer);
if (ShellStatus == SHELL_SUCCESS) { if (ShellStatus == SHELL_SUCCESS) {
DevicePath = DuplicateDevicePath (DevicePathBuffer); DevicePath = DuplicateDevicePath (DevicePathBuffer);
@ -510,7 +519,12 @@ BcfgMod (
LoadOption.Description = AllocateCopyPool (StrSize (BcfgOperation->Description), BcfgOperation->Description); LoadOption.Description = AllocateCopyPool (StrSize (BcfgOperation->Description), BcfgOperation->Description);
} else { } else {
SHELL_FREE_NON_NULL (LoadOption.FilePath); SHELL_FREE_NON_NULL (LoadOption.FilePath);
if (DevicePath != NULL) {
LoadOption.FilePath = DuplicateDevicePath (DevicePath); LoadOption.FilePath = DuplicateDevicePath (DevicePath);
} else {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (SHELL_OUT_OF_RESOURCES), gShellBcfgHiiHandle, L"bcfg", OptionStr);
goto Done;
}
} }
Status = EfiBootManagerLoadOptionToVariable (&LoadOption); Status = EfiBootManagerLoadOptionToVariable (&LoadOption);
@ -522,6 +536,8 @@ BcfgMod (
EfiBootManagerFreeLoadOption (&LoadOption); EfiBootManagerFreeLoadOption (&LoadOption);
Done:
if (DevicePath != NULL) { if (DevicePath != NULL) {
FreePool (DevicePath); FreePool (DevicePath);
} }
@ -786,9 +802,16 @@ BcfgAdd (
// Add the option // Add the option
// //
DescSize = StrSize (Desc); DescSize = StrSize (Desc);
if (FilePath == NULL) {
ASSERT (FilePath != NULL);
ShellStatus = SHELL_UNSUPPORTED;
TempByteBuffer = NULL;
} else {
FilePathSize = GetDevicePathSize (FilePath); FilePathSize = GetDevicePathSize (FilePath);
TempByteBuffer = AllocateZeroPool (sizeof (UINT32) + sizeof (UINT16) + DescSize + FilePathSize); TempByteBuffer = AllocateZeroPool (sizeof (UINT32) + sizeof (UINT16) + DescSize + FilePathSize);
}
if (TempByteBuffer != NULL) { if (TempByteBuffer != NULL) {
TempByteStart = TempByteBuffer; TempByteStart = TempByteBuffer;
*((UINT32 *)TempByteBuffer) = LOAD_OPTION_ACTIVE; // Attributes *((UINT32 *)TempByteBuffer) = LOAD_OPTION_ACTIVE; // Attributes
@ -1024,7 +1047,7 @@ BcfgAddOpt (
SHELL_STATUS ShellStatus; SHELL_STATUS ShellStatus;
EFI_STATUS Status; EFI_STATUS Status;
UINT16 OptionIndex; UINT16 OptionIndex;
UINT16 LoopCounter; UINT32 LoopCounter;
UINT64 Intermediate; UINT64 Intermediate;
CONST CHAR16 *Temp; CONST CHAR16 *Temp;
CONST CHAR16 *Walker; CONST CHAR16 *Walker;
@ -1093,7 +1116,13 @@ BcfgAddOpt (
} }
Temp2 = StrStr (FileName, L"\""); Temp2 = StrStr (FileName, L"\"");
if (Temp2 == NULL) {
ASSERT (Temp2 != NULL); ASSERT (Temp2 != NULL);
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellBcfgHiiHandle, L"bcfg", Walker);
ShellStatus = SHELL_INVALID_PARAMETER;
return (ShellStatus);
}
Temp2[0] = CHAR_NULL; Temp2[0] = CHAR_NULL;
Temp2++; Temp2++;
if (StrLen (Temp2) > 0) { if (StrLen (Temp2) > 0) {
@ -1363,6 +1392,12 @@ BcfgDisplayDump (
); );
if (Status == EFI_BUFFER_TOO_SMALL) { if (Status == EFI_BUFFER_TOO_SMALL) {
Buffer = AllocateZeroPool (BufferSize); Buffer = AllocateZeroPool (BufferSize);
if (Buffer == NULL) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_MEM), gShellBcfgHiiHandle, L"bcfg");
++Errors;
goto Cleanup;
}
Status = gRT->GetVariable ( Status = gRT->GetVariable (
VariableName, VariableName,
(EFI_GUID *)&gEfiGlobalVariableGuid, (EFI_GUID *)&gEfiGlobalVariableGuid,
@ -1403,6 +1438,11 @@ BcfgDisplayDump (
if (LoadOption->FilePathListLength != 0) { if (LoadOption->FilePathListLength != 0) {
FilePathList = (UINT8 *)Description + DescriptionSize; FilePathList = (UINT8 *)Description + DescriptionSize;
DevPathString = ConvertDevicePathToText (FilePathList, TRUE, FALSE); DevPathString = ConvertDevicePathToText (FilePathList, TRUE, FALSE);
if (DevPathString == NULL) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_MEM), gShellBcfgHiiHandle, L"bcfg");
++Errors;
goto Cleanup;
}
} }
OptionalDataOffset = sizeof *LoadOption + DescriptionSize + OptionalDataOffset = sizeof *LoadOption + DescriptionSize +
@ -1590,6 +1630,12 @@ ShellCommandRunBcfg (
if ((ShellStatus == SHELL_SUCCESS) && (CurrentOperation.Target < BcfgTargetMax)) { if ((ShellStatus == SHELL_SUCCESS) && (CurrentOperation.Target < BcfgTargetMax)) {
for (ParamNumber = 2; ParamNumber < ShellCommandLineGetCount (Package) && ShellStatus == SHELL_SUCCESS; ParamNumber++) { for (ParamNumber = 2; ParamNumber < ShellCommandLineGetCount (Package) && ShellStatus == SHELL_SUCCESS; ParamNumber++) {
CurrentParam = ShellCommandLineGetRawValue (Package, ParamNumber); CurrentParam = ShellCommandLineGetRawValue (Package, ParamNumber);
if (CurrentParam == NULL) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellBcfgHiiHandle, L"bcfg", L"NULL");
ShellStatus = SHELL_INVALID_PARAMETER;
goto Done;
}
if (gUnicodeCollation->StriColl (gUnicodeCollation, (CHAR16 *)CurrentParam, L"dump") == 0) { if (gUnicodeCollation->StriColl (gUnicodeCollation, (CHAR16 *)CurrentParam, L"dump") == 0) {
CurrentOperation.Type = BcfgTypeDump; CurrentOperation.Type = BcfgTypeDump;
if (ShellCommandLineGetCount (Package) > 3) { if (ShellCommandLineGetCount (Package) > 3) {
@ -1883,6 +1929,8 @@ ShellCommandRunBcfg (
} }
} }
Done:
if (Package != NULL) { if (Package != NULL) {
ShellCommandLineFreeVarList (Package); ShellCommandLineFreeVarList (Package);
} }

View File

@ -284,7 +284,7 @@ ShellCommandRunComp (
ASSERT (TempParam != NULL); ASSERT (TempParam != NULL);
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"comp", TempParam); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"comp", TempParam);
ShellStatus = SHELL_INVALID_PARAMETER; ShellStatus = SHELL_INVALID_PARAMETER;
return (ShellStatus); goto Exit;
} }
FileName1 = ShellFindFilePath (TempParam); FileName1 = ShellFindFilePath (TempParam);
@ -304,7 +304,7 @@ ShellCommandRunComp (
ASSERT (TempParam != NULL); ASSERT (TempParam != NULL);
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"comp", TempParam); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"comp", TempParam);
ShellStatus = SHELL_INVALID_PARAMETER; ShellStatus = SHELL_INVALID_PARAMETER;
return (ShellStatus); goto Exit;
} }
FileName2 = ShellFindFilePath (TempParam); FileName2 = ShellFindFilePath (TempParam);
@ -511,6 +511,7 @@ ShellCommandRunComp (
ShellCommandLineFreeVarList (Package); ShellCommandLineFreeVarList (Package);
} }
Exit:
SHELL_FREE_NON_NULL (FileName1); SHELL_FREE_NON_NULL (FileName1);
SHELL_FREE_NON_NULL (FileName2); SHELL_FREE_NON_NULL (FileName2);

View File

@ -103,7 +103,7 @@ ShellCommandRunEdit (
TempParam = ShellCommandLineGetRawValue (Package, 1); TempParam = ShellCommandLineGetRawValue (Package, 1);
if (TempParam == NULL) { if (TempParam == NULL) {
ASSERT (TempParam != NULL); ASSERT (TempParam != NULL);
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle, L"edit"); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"edit");
ShellStatus = SHELL_INVALID_PARAMETER; ShellStatus = SHELL_INVALID_PARAMETER;
} else { } else {
FileBufferSetFileName (TempParam); FileBufferSetFileName (TempParam);

View File

@ -48,6 +48,7 @@ ShellCommandRunEfiCompress (
InShellFileHandle = NULL; InShellFileHandle = NULL;
OutShellFileHandle = NULL; OutShellFileHandle = NULL;
InBuffer = NULL; InBuffer = NULL;
Package = NULL;
// //
// initialize the shell lib (we must be in non-auto-init...) // initialize the shell lib (we must be in non-auto-init...)
@ -83,6 +84,7 @@ ShellCommandRunEfiCompress (
ASSERT (TempParam != NULL); ASSERT (TempParam != NULL);
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"eficompress"); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"eficompress");
ShellStatus = SHELL_INVALID_PARAMETER; ShellStatus = SHELL_INVALID_PARAMETER;
goto Exit;
} }
InFileName = ShellFindFilePath (TempParam); InFileName = ShellFindFilePath (TempParam);
@ -155,6 +157,11 @@ ShellCommandRunEfiCompress (
ShellCommandLineFreeVarList (Package); ShellCommandLineFreeVarList (Package);
} }
Exit:
if ((ShellStatus != SHELL_SUCCESS) && (Package != NULL)) {
ShellCommandLineFreeVarList (Package);
}
if (InShellFileHandle != NULL) { if (InShellFileHandle != NULL) {
gEfiShellProtocol->CloseFile (InShellFileHandle); gEfiShellProtocol->CloseFile (InShellFileHandle);
} }

View File

@ -89,7 +89,7 @@ ShellCommandRunEfiDecompress (
ASSERT (TempParam != NULL); ASSERT (TempParam != NULL);
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"efidecompress"); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"efidecompress");
ShellStatus = SHELL_INVALID_PARAMETER; ShellStatus = SHELL_INVALID_PARAMETER;
return (ShellStatus); goto Done;
} }
InFileName = ShellFindFilePath (TempParam); InFileName = ShellFindFilePath (TempParam);

View File

@ -117,6 +117,8 @@ HMainCommandDisplayHelp (
); );
if (InfoString != NULL) { if (InfoString != NULL) {
ShellPrintEx (0, CurrentLine+1, L"%E%s%N", InfoString); ShellPrintEx (0, CurrentLine+1, L"%E%s%N", InfoString);
} else {
ASSERT (FALSE);
} }
} }

View File

@ -340,6 +340,7 @@ LoadEfiDriversFromRomImage (
FilePath = FileDevicePath (NULL, RomFileName); FilePath = FileDevicePath (NULL, RomFileName);
if (FilePath == NULL) { if (FilePath == NULL) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_LOADPCIROM_LOAD_FAIL), gShellDebug1HiiHandle, L"loadpcirom", FileName, ImageIndex); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_LOADPCIROM_LOAD_FAIL), gShellDebug1HiiHandle, L"loadpcirom", FileName, ImageIndex);
SHELL_FREE_NON_NULL (DecompressedImageBuffer);
return EFI_OUT_OF_RESOURCES; return EFI_OUT_OF_RESOURCES;
} }

View File

@ -216,7 +216,8 @@ ShellCommandRunMemMap (
Descriptors = AllocateZeroPool (Size); Descriptors = AllocateZeroPool (Size);
if (Descriptors == NULL) { if (Descriptors == NULL) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle, L"memmap"); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle, L"memmap");
ShellStatus = SHELL_OUT_OF_RESOURCES; ShellCommandLineFreeVarList (Package);
return SHELL_OUT_OF_RESOURCES;
} }
Status = gBS->GetMemoryMap (&Size, Descriptors, &MapKey, &ItemSize, &Version); Status = gBS->GetMemoryMap (&Size, Descriptors, &MapKey, &ItemSize, &Version);

View File

@ -63,7 +63,7 @@ ShellCommandRunSetSize (
} else { } else {
Temp1 = ShellCommandLineGetRawValue (Package, 1); Temp1 = ShellCommandLineGetRawValue (Package, 1);
if (Temp1 == NULL) { if (Temp1 == NULL) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle, L"setsize"); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"setsize");
ShellStatus = SHELL_INVALID_PARAMETER; ShellStatus = SHELL_INVALID_PARAMETER;
NewSize = 0; NewSize = 0;
} else if (!ShellIsHexOrDecimalNumber (Temp1, FALSE, FALSE)) { } else if (!ShellIsHexOrDecimalNumber (Temp1, FALSE, FALSE)) {

View File

@ -405,6 +405,7 @@ ShellCommandRunSetVar (
} else { } else {
VariableName = ShellCommandLineGetRawValue (Package, 1); VariableName = ShellCommandLineGetRawValue (Package, 1);
if (VariableName == NULL) { if (VariableName == NULL) {
ShellCommandLineFreeVarList (Package);
return SHELL_INVALID_PARAMETER; return SHELL_INVALID_PARAMETER;
} }
@ -416,6 +417,7 @@ ShellCommandRunSetVar (
RStatus = StrToGuid (StringGuid, &Guid); RStatus = StrToGuid (StringGuid, &Guid);
} else { } else {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"setvar", StringGuid); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"setvar", StringGuid);
ShellCommandLineFreeVarList (Package);
return SHELL_INVALID_PARAMETER; return SHELL_INVALID_PARAMETER;
} }
@ -434,6 +436,7 @@ ShellCommandRunSetVar (
Buffer = AllocateZeroPool (Size); Buffer = AllocateZeroPool (Size);
if (Buffer == NULL) { if (Buffer == NULL) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle, L"setvar"); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle, L"setvar");
ShellCommandLineFreeVarList (Package);
return SHELL_OUT_OF_RESOURCES; return SHELL_OUT_OF_RESOURCES;
} }
@ -460,6 +463,7 @@ ShellCommandRunSetVar (
Buffer = AllocateZeroPool (Size); Buffer = AllocateZeroPool (Size);
if (Buffer == NULL) { if (Buffer == NULL) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle, L"setvar"); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle, L"setvar");
ShellCommandLineFreeVarList (Package);
return SHELL_OUT_OF_RESOURCES; return SHELL_OUT_OF_RESOURCES;
} }

View File

@ -163,22 +163,25 @@ ShellCommandRunDisconnect (
Param1 = ShellCommandLineGetRawValue (Package, 1); Param1 = ShellCommandLineGetRawValue (Package, 1);
Param2 = ShellCommandLineGetRawValue (Package, 2); Param2 = ShellCommandLineGetRawValue (Package, 2);
Param3 = ShellCommandLineGetRawValue (Package, 3); Param3 = ShellCommandLineGetRawValue (Package, 3);
if (Param1 != NULL) {
ShellConvertStringToUint64 (Param1, &Intermediate1, TRUE, FALSE); if (Param1 && !EFI_ERROR (ShellConvertStringToUint64 (Param1, &Intermediate1, TRUE, FALSE))) {
Handle1 = ConvertHandleIndexToHandle ((UINTN)Intermediate1);
} else {
Handle1 = NULL;
} }
Handle1 = Param1 != NULL ? ConvertHandleIndexToHandle ((UINTN)Intermediate1) : NULL; if (Param2 && !EFI_ERROR (ShellConvertStringToUint64 (Param2, &Intermediate2, TRUE, FALSE))) {
if (Param2 != NULL) { Handle2 = ConvertHandleIndexToHandle ((UINTN)Intermediate2);
ShellConvertStringToUint64 (Param2, &Intermediate2, TRUE, FALSE); } else {
Handle2 = NULL;
} }
Handle2 = Param2 != NULL ? ConvertHandleIndexToHandle ((UINTN)Intermediate2) : NULL; if (Param3 && !EFI_ERROR (ShellConvertStringToUint64 (Param3, &Intermediate3, TRUE, FALSE))) {
if (Param3 != NULL) { Handle3 = ConvertHandleIndexToHandle ((UINTN)Intermediate3);
ShellConvertStringToUint64 (Param3, &Intermediate3, TRUE, FALSE); } else {
Handle3 = NULL;
} }
Handle3 = Param3 != NULL ? ConvertHandleIndexToHandle ((UINTN)Intermediate3) : NULL;
if ((Param1 != NULL) && (Handle1 == NULL)) { if ((Param1 != NULL) && (Handle1 == NULL)) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"disconnect", Param1); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"disconnect", Param1);
ShellStatus = SHELL_INVALID_PARAMETER; ShellStatus = SHELL_INVALID_PARAMETER;

View File

@ -250,6 +250,19 @@ ConfigToFile (
} }
Status = HiiDatabase->ExportPackageLists (HiiDatabase, HiiHandle, &MainBufferSize, MainBuffer); Status = HiiDatabase->ExportPackageLists (HiiDatabase, HiiHandle, &MainBufferSize, MainBuffer);
if (EFI_ERROR (Status)) {
SHELL_FREE_NON_NULL (MainBuffer);
ShellPrintHiiEx (
-1,
-1,
NULL,
STRING_TOKEN (STR_GEN_OUT_MEM),
gShellDriver1HiiHandle,
L"drvcfg"
);
ShellCloseFile (&FileHandle);
return (SHELL_DEVICE_ERROR);
}
} }
Status = ShellWriteFile (FileHandle, &MainBufferSize, MainBuffer); Status = ShellWriteFile (FileHandle, &MainBufferSize, MainBuffer);

View File

@ -325,7 +325,6 @@ Done:
SHELL_FREE_NON_NULL (ChildHandleList); SHELL_FREE_NON_NULL (ChildHandleList);
SHELL_FREE_NON_NULL (Language); SHELL_FREE_NON_NULL (Language);
SHELL_FREE_NON_NULL (OutBuffer); SHELL_FREE_NON_NULL (OutBuffer);
SHELL_FREE_NON_NULL (ErrorType);
return (Status2); return (Status2);
} }
@ -367,7 +366,6 @@ ShellCommandRunDrvDiag (
EFI_HANDLE Handle3; EFI_HANDLE Handle3;
UINT64 Intermediate; UINT64 Intermediate;
Intermediate = 0;
ShellStatus = SHELL_SUCCESS; ShellStatus = SHELL_SUCCESS;
Mode = TestModeMax; Mode = TestModeMax;
Language = NULL; Language = NULL;

View File

@ -125,7 +125,7 @@ TraverseHandleDatabase (
OpenTypeString, OpenTypeString,
Name Name
); );
} else if (Name != NULL) { } else {
ShellPrintHiiEx ( ShellPrintHiiEx (
-1, -1,
-1, -1,
@ -135,7 +135,7 @@ TraverseHandleDatabase (
HandleIndex, HandleIndex,
OpenInfo[OpenInfoIndex].OpenCount, OpenInfo[OpenInfoIndex].OpenCount,
OpenTypeString, OpenTypeString,
Name Name ? Name : L""
); );
} }
} }

View File

@ -205,7 +205,8 @@ CopySingleFile (
DestVolumeInfo = AllocateZeroPool (DestVolumeInfoSize); DestVolumeInfo = AllocateZeroPool (DestVolumeInfoSize);
if (DestVolumeInfo == NULL) { if (DestVolumeInfo == NULL) {
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellLevel2HiiHandle, L"cp"); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellLevel2HiiHandle, L"cp");
return (SHELL_OUT_OF_RESOURCES); ShellStatus = SHELL_OUT_OF_RESOURCES;
goto Done;
} }
Status = DestVolumeFP->GetInfo ( Status = DestVolumeFP->GetInfo (
@ -256,6 +257,7 @@ CopySingleFile (
SHELL_FREE_NON_NULL (DestVolumeInfo); SHELL_FREE_NON_NULL (DestVolumeInfo);
} }
Done:
// //
// close files // close files
// //

View File

@ -74,6 +74,7 @@ PrintSfoVolumeInfoTableEntry (
if (Status == EFI_BUFFER_TOO_SMALL) { if (Status == EFI_BUFFER_TOO_SMALL) {
SysInfo = AllocateZeroPool (SysInfoSize); SysInfo = AllocateZeroPool (SysInfoSize);
if (SysInfo == NULL) { if (SysInfo == NULL) {
gEfiShellProtocol->CloseFile (ShellFileHandle);
return (EFI_OUT_OF_RESOURCES); return (EFI_OUT_OF_RESOURCES);
} }

View File

@ -308,7 +308,6 @@ ShellCommandRunHelp (
CONST CHAR16 *CurrentCommand; CONST CHAR16 *CurrentCommand;
CHAR16 *CommandToGetHelpOn; CHAR16 *CommandToGetHelpOn;
CHAR16 *SectionToGetHelpOn; CHAR16 *SectionToGetHelpOn;
CHAR16 *HiiString;
BOOLEAN Found; BOOLEAN Found;
BOOLEAN PrintCommandText; BOOLEAN PrintCommandText;
UINTN SortedCommandListSize; UINTN SortedCommandListSize;
@ -398,9 +397,7 @@ ShellCommandRunHelp (
// we need info on the special characters // we need info on the special characters
// //
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_HELP_SC_HEADER), gShellLevel3HiiHandle); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_HELP_SC_HEADER), gShellLevel3HiiHandle);
HiiString = HiiGetString (gShellLevel3HiiHandle, STRING_TOKEN (STR_HELP_SC_DATA), NULL); ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_HELP_SC_DATA), gShellLevel3HiiHandle);
ShellPrintEx (-1, -1, L"%s", HiiString);
FreePool (HiiString);
Found = TRUE; Found = TRUE;
} else { } else {
SortedCommandList = NULL; SortedCommandList = NULL;

View File

@ -3820,7 +3820,10 @@ ShellPromptForResponseHii (
Prompt = HiiGetString (HiiFormatHandle, HiiFormatStringId, NULL); Prompt = HiiGetString (HiiFormatHandle, HiiFormatStringId, NULL);
Status = ShellPromptForResponse (Type, Prompt, Response); Status = ShellPromptForResponse (Type, Prompt, Response);
if (Prompt != NULL) {
FreePool (Prompt); FreePool (Prompt);
}
return (Status); return (Status);
} }

View File

@ -468,7 +468,10 @@ IfConfig6ParseManualAddressList (
} }
AddrBuf = AllocateZeroPool (AddrCnt * sizeof (EFI_IP6_CONFIG_MANUAL_ADDRESS)); AddrBuf = AllocateZeroPool (AddrCnt * sizeof (EFI_IP6_CONFIG_MANUAL_ADDRESS));
if (AddrBuf == NULL) {
ASSERT (AddrBuf != NULL); ASSERT (AddrBuf != NULL);
return EFI_OUT_OF_RESOURCES;
}
AddrCnt = 0; AddrCnt = 0;
VarArg = *Arg; VarArg = *Arg;
@ -569,7 +572,10 @@ IfConfig6ParseGwDnsAddressList (
} }
AddrBuf = AllocateZeroPool (AddrCnt * sizeof (EFI_IPv6_ADDRESS)); AddrBuf = AllocateZeroPool (AddrCnt * sizeof (EFI_IPv6_ADDRESS));
if (AddrBuf == NULL) {
ASSERT (AddrBuf != NULL); ASSERT (AddrBuf != NULL);
return EFI_OUT_OF_RESOURCES;
}
AddrCnt = 0; AddrCnt = 0;
VarArg = *Arg; VarArg = *Arg;
@ -1194,7 +1200,7 @@ IfConfig6SetInterfaceInfo (
BOOLEAN IsAddressOk; BOOLEAN IsAddressOk;
UINTN DataSize; UINTN DataSize;
UINT32 Index; UINTN Index;
UINT32 Index2; UINT32 Index2;
BOOLEAN IsAddressSet; BOOLEAN IsAddressSet;
EFI_IP6_CONFIG_INTERFACE_INFO *IfInfo; EFI_IP6_CONFIG_INTERFACE_INFO *IfInfo;