ShellPkg: Add checking for memory allocation and pointer returns from functions.

signed-off-by: jcarsey
reviewed-by: geekboy15a

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12540 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jcarsey
2011-10-14 19:21:13 +00:00
parent de2a15eebb
commit 532691c8ba
15 changed files with 253 additions and 168 deletions

View File

@@ -577,6 +577,9 @@ UpdateStdInStdOutStdErr(
}
CommandLineCopy = StrnCatGrow(&CommandLineCopy, NULL, NewCommandLine, 0);
if (CommandLineCopy == NULL) {
return (EFI_OUT_OF_RESOURCES);
}
Status = EFI_SUCCESS;
Split = NULL;
FirstLocation = CommandLineCopy + StrLen(CommandLineCopy);
@@ -1030,16 +1033,19 @@ UpdateStdInStdOutStdErr(
//
if (!EFI_ERROR(Status) && StdInVarName != NULL) {
TempHandle = CreateFileInterfaceEnv(StdInVarName);
if (!InUnicode) {
TempHandle = CreateFileInterfaceFile(TempHandle, FALSE);
}
Size = 0;
ASSERT(TempHandle != NULL);
if (((EFI_FILE_PROTOCOL*)TempHandle)->Read(TempHandle, &Size, NULL) != EFI_BUFFER_TOO_SMALL) {
Status = EFI_INVALID_PARAMETER;
if (TempHandle == NULL) {
Status = EFI_OUT_OF_RESOURCES;
} else {
ShellParameters->StdIn = TempHandle;
gST->ConIn = CreateSimpleTextInOnFile(TempHandle, &gST->ConsoleInHandle);
if (!InUnicode) {
TempHandle = CreateFileInterfaceFile(TempHandle, FALSE);
}
Size = 0;
if (((EFI_FILE_PROTOCOL*)TempHandle)->Read(TempHandle, &Size, NULL) != EFI_BUFFER_TOO_SMALL) {
Status = EFI_INVALID_PARAMETER;
} else {
ShellParameters->StdIn = TempHandle;
gST->ConIn = CreateSimpleTextInOnFile(TempHandle, &gST->ConsoleInHandle);
}
}
}