check memory allocations for success.
check pointer before access. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11503 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -2760,7 +2760,7 @@ FileBufferMovePosition (
|
|||||||
//
|
//
|
||||||
FileBuffer.FilePosition.Column = NewFilePosCol;
|
FileBuffer.FilePosition.Column = NewFilePosCol;
|
||||||
if (ColGap < 0) {
|
if (ColGap < 0) {
|
||||||
Abs = -ColGap;
|
Abs = (UINTN)(-ColGap);
|
||||||
FileBuffer.DisplayPosition.Column -= Abs;
|
FileBuffer.DisplayPosition.Column -= Abs;
|
||||||
} else {
|
} else {
|
||||||
FileBuffer.DisplayPosition.Column += ColGap;
|
FileBuffer.DisplayPosition.Column += ColGap;
|
||||||
|
@ -205,15 +205,20 @@ ShellCommandRunSetVar (
|
|||||||
Data++;
|
Data++;
|
||||||
Data++;
|
Data++;
|
||||||
Buffer = AllocateZeroPool(StrSize(Data));
|
Buffer = AllocateZeroPool(StrSize(Data));
|
||||||
UnicodeSPrint(Buffer, StrSize(Data), L"%s", Data);
|
if (Buffer == NULL) {
|
||||||
((CHAR16*)Buffer)[StrLen(Buffer)-1] = CHAR_NULL;
|
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle);
|
||||||
|
ShellStatus = SHELL_OUT_OF_RESOURCES;
|
||||||
Status = gRT->SetVariable((CHAR16*)VariableName, &Guid, Attributes, StrSize(Buffer)-sizeof(CHAR16), Buffer);
|
|
||||||
if (EFI_ERROR(Status)) {
|
|
||||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SETVAR_ERROR_SET), gShellDebug1HiiHandle, &Guid, VariableName, Status);
|
|
||||||
ShellStatus = SHELL_ACCESS_DENIED;
|
|
||||||
} else {
|
} else {
|
||||||
ASSERT(ShellStatus == SHELL_SUCCESS);
|
UnicodeSPrint(Buffer, StrSize(Data), L"%s", Data);
|
||||||
|
((CHAR16*)Buffer)[StrLen(Buffer)-1] = CHAR_NULL;
|
||||||
|
|
||||||
|
Status = gRT->SetVariable((CHAR16*)VariableName, &Guid, Attributes, StrSize(Buffer)-sizeof(CHAR16), Buffer);
|
||||||
|
if (EFI_ERROR(Status)) {
|
||||||
|
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SETVAR_ERROR_SET), gShellDebug1HiiHandle, &Guid, VariableName, Status);
|
||||||
|
ShellStatus = SHELL_ACCESS_DENIED;
|
||||||
|
} else {
|
||||||
|
ASSERT(ShellStatus == SHELL_SUCCESS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (StrnCmp(Data, L"--", 2) == 0) {
|
} else if (StrnCmp(Data, L"--", 2) == 0) {
|
||||||
//
|
//
|
||||||
|
@ -565,7 +565,9 @@ ShellCommandRunFor (
|
|||||||
Info->RemoveSubstAlias = TRUE;
|
Info->RemoveSubstAlias = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CurrentScriptFile->CurrentCommand->Data = Info;
|
if (CurrentScriptFile->CurrentCommand != NULL) {
|
||||||
|
CurrentScriptFile->CurrentCommand->Data = Info;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ShellPrintHiiEx(
|
ShellPrintHiiEx(
|
||||||
-1,
|
-1,
|
||||||
|
Binary file not shown.
@ -113,14 +113,20 @@ HandleVol(
|
|||||||
Size2 = StrSize(SysInfo->VolumeLabel);
|
Size2 = StrSize(SysInfo->VolumeLabel);
|
||||||
if (Size1 > Size2) {
|
if (Size1 > Size2) {
|
||||||
SysInfo = ReallocatePool((UINTN)SysInfo->Size, (UINTN)SysInfo->Size + Size1 - Size2, SysInfo);
|
SysInfo = ReallocatePool((UINTN)SysInfo->Size, (UINTN)SysInfo->Size + Size1 - Size2, SysInfo);
|
||||||
|
if (SysInfo == NULL) {
|
||||||
|
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellLevel2HiiHandle);
|
||||||
|
ShellStatus = SHELL_OUT_OF_RESOURCES;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (SysInfo != NULL) {
|
||||||
|
StrCpy ((CHAR16 *) SysInfo->VolumeLabel, Name);
|
||||||
|
SysInfo->Size = SIZE_OF_EFI_FILE_SYSTEM_INFO + Size1;
|
||||||
|
Status = EfiFpHandle->SetInfo(
|
||||||
|
EfiFpHandle,
|
||||||
|
&gEfiFileSystemInfoGuid,
|
||||||
|
(UINTN)SysInfo->Size,
|
||||||
|
SysInfo);
|
||||||
}
|
}
|
||||||
StrCpy ((CHAR16 *) SysInfo->VolumeLabel, Name);
|
|
||||||
SysInfo->Size = SIZE_OF_EFI_FILE_SYSTEM_INFO + Size1;
|
|
||||||
Status = EfiFpHandle->SetInfo(
|
|
||||||
EfiFpHandle,
|
|
||||||
&gEfiFileSystemInfoGuid,
|
|
||||||
(UINTN)SysInfo->Size,
|
|
||||||
SysInfo);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FreePool(SysInfo);
|
FreePool(SysInfo);
|
||||||
@ -154,22 +160,24 @@ HandleVol(
|
|||||||
|
|
||||||
ASSERT(SysInfo != NULL);
|
ASSERT(SysInfo != NULL);
|
||||||
|
|
||||||
//
|
if (SysInfo != NULL) {
|
||||||
// print VolumeInfo table
|
//
|
||||||
//
|
// print VolumeInfo table
|
||||||
ShellPrintHiiEx (
|
//
|
||||||
0,
|
ShellPrintHiiEx (
|
||||||
gST->ConOut->Mode->CursorRow,
|
0,
|
||||||
NULL,
|
gST->ConOut->Mode->CursorRow,
|
||||||
STRING_TOKEN (STR_VOL_VOLINFO),
|
NULL,
|
||||||
gShellLevel2HiiHandle,
|
STRING_TOKEN (STR_VOL_VOLINFO),
|
||||||
SysInfo->VolumeLabel,
|
gShellLevel2HiiHandle,
|
||||||
SysInfo->ReadOnly?L"r":L"rw",
|
SysInfo->VolumeLabel,
|
||||||
SysInfo->VolumeSize,
|
SysInfo->ReadOnly?L"r":L"rw",
|
||||||
SysInfo->FreeSpace,
|
SysInfo->VolumeSize,
|
||||||
SysInfo->BlockSize
|
SysInfo->FreeSpace,
|
||||||
);
|
SysInfo->BlockSize
|
||||||
SHELL_FREE_NON_NULL(SysInfo);
|
);
|
||||||
|
SHELL_FREE_NON_NULL(SysInfo);
|
||||||
|
}
|
||||||
|
|
||||||
return (ShellStatus);
|
return (ShellStatus);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user