ShellPkg/Shell.c: Handle memory allocation failure
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
This commit is contained in:
@ -1319,7 +1319,7 @@ DoShellPrompt (
|
|||||||
**/
|
**/
|
||||||
VOID*
|
VOID*
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AddBufferToFreeList(
|
AddBufferToFreeList (
|
||||||
VOID *Buffer
|
VOID *Buffer
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -1329,10 +1329,13 @@ AddBufferToFreeList(
|
|||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
BufferListEntry = AllocateZeroPool(sizeof(BUFFER_LIST));
|
BufferListEntry = AllocateZeroPool (sizeof (BUFFER_LIST));
|
||||||
ASSERT(BufferListEntry != NULL);
|
if (BufferListEntry == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
BufferListEntry->Buffer = Buffer;
|
BufferListEntry->Buffer = Buffer;
|
||||||
InsertTailList(&ShellInfoObject.BufferToFreeList.Link, &BufferListEntry->Link);
|
InsertTailList (&ShellInfoObject.BufferToFreeList.Link, &BufferListEntry->Link);
|
||||||
return (Buffer);
|
return (Buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1391,9 +1394,15 @@ AddLineToCommandHistory(
|
|||||||
|
|
||||||
|
|
||||||
Node = AllocateZeroPool(sizeof(BUFFER_LIST));
|
Node = AllocateZeroPool(sizeof(BUFFER_LIST));
|
||||||
ASSERT(Node != NULL);
|
if (Node == NULL) {
|
||||||
Node->Buffer = AllocateCopyPool(StrSize(Buffer), Buffer);
|
return;
|
||||||
ASSERT(Node->Buffer != NULL);
|
}
|
||||||
|
|
||||||
|
Node->Buffer = AllocateCopyPool (StrSize (Buffer), Buffer);
|
||||||
|
if (Node->Buffer == NULL) {
|
||||||
|
FreePool (Node);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for ( Walker = (BUFFER_LIST*)GetFirstNode(&ShellInfoObject.ViewingSettings.CommandHistory.Link)
|
for ( Walker = (BUFFER_LIST*)GetFirstNode(&ShellInfoObject.ViewingSettings.CommandHistory.Link)
|
||||||
; !IsNull(&ShellInfoObject.ViewingSettings.CommandHistory.Link, &Walker->Link)
|
; !IsNull(&ShellInfoObject.ViewingSettings.CommandHistory.Link, &Walker->Link)
|
||||||
@ -1721,7 +1730,9 @@ RunSplitCommand(
|
|||||||
// make a SPLIT_LIST item and add to list
|
// make a SPLIT_LIST item and add to list
|
||||||
//
|
//
|
||||||
Split = AllocateZeroPool(sizeof(SPLIT_LIST));
|
Split = AllocateZeroPool(sizeof(SPLIT_LIST));
|
||||||
ASSERT(Split != NULL);
|
if (Split == NULL) {
|
||||||
|
return EFI_OUT_OF_RESOURCES;
|
||||||
|
}
|
||||||
Split->SplitStdIn = StdIn;
|
Split->SplitStdIn = StdIn;
|
||||||
Split->SplitStdOut = ConvertEfiFileProtocolToShellHandle(CreateFileInterfaceMem(Unicode), NULL);
|
Split->SplitStdOut = ConvertEfiFileProtocolToShellHandle(CreateFileInterfaceMem(Unicode), NULL);
|
||||||
ASSERT(Split->SplitStdOut != NULL);
|
ASSERT(Split->SplitStdOut != NULL);
|
||||||
|
Reference in New Issue
Block a user