Data++;\r
Data++;\r
Buffer = AllocateZeroPool(StrSize(Data));\r
- UnicodeSPrint(Buffer, StrSize(Data), L"%s", Data);\r
- ((CHAR16*)Buffer)[StrLen(Buffer)-1] = CHAR_NULL;\r
-\r
- Status = gRT->SetVariable((CHAR16*)VariableName, &Guid, Attributes, StrSize(Buffer)-sizeof(CHAR16), Buffer);\r
- if (EFI_ERROR(Status)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SETVAR_ERROR_SET), gShellDebug1HiiHandle, &Guid, VariableName, Status);\r
- ShellStatus = SHELL_ACCESS_DENIED;\r
+ if (Buffer == NULL) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle);\r
+ ShellStatus = SHELL_OUT_OF_RESOURCES;\r
} else {\r
- ASSERT(ShellStatus == SHELL_SUCCESS);\r
+ UnicodeSPrint(Buffer, StrSize(Data), L"%s", Data);\r
+ ((CHAR16*)Buffer)[StrLen(Buffer)-1] = CHAR_NULL;\r
+\r
+ Status = gRT->SetVariable((CHAR16*)VariableName, &Guid, Attributes, StrSize(Buffer)-sizeof(CHAR16), Buffer);\r
+ if (EFI_ERROR(Status)) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SETVAR_ERROR_SET), gShellDebug1HiiHandle, &Guid, VariableName, Status);\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
+ } else {\r
+ ASSERT(ShellStatus == SHELL_SUCCESS);\r
+ }\r
}\r
} else if (StrnCmp(Data, L"--", 2) == 0) {\r
//\r
Size2 = StrSize(SysInfo->VolumeLabel);\r
if (Size1 > Size2) {\r
SysInfo = ReallocatePool((UINTN)SysInfo->Size, (UINTN)SysInfo->Size + Size1 - Size2, SysInfo);\r
+ if (SysInfo == NULL) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellLevel2HiiHandle);\r
+ ShellStatus = SHELL_OUT_OF_RESOURCES;\r
+ } \r
+ }\r
+ if (SysInfo != NULL) {\r
+ StrCpy ((CHAR16 *) SysInfo->VolumeLabel, Name);\r
+ SysInfo->Size = SIZE_OF_EFI_FILE_SYSTEM_INFO + Size1;\r
+ Status = EfiFpHandle->SetInfo(\r
+ EfiFpHandle,\r
+ &gEfiFileSystemInfoGuid,\r
+ (UINTN)SysInfo->Size,\r
+ SysInfo);\r
}\r
- StrCpy ((CHAR16 *) SysInfo->VolumeLabel, Name);\r
- SysInfo->Size = SIZE_OF_EFI_FILE_SYSTEM_INFO + Size1;\r
- Status = EfiFpHandle->SetInfo(\r
- EfiFpHandle,\r
- &gEfiFileSystemInfoGuid,\r
- (UINTN)SysInfo->Size,\r
- SysInfo);\r
} \r
\r
FreePool(SysInfo);\r
\r
ASSERT(SysInfo != NULL);\r
\r
- //\r
- // print VolumeInfo table\r
- //\r
- ShellPrintHiiEx (\r
- 0,\r
- gST->ConOut->Mode->CursorRow,\r
- NULL,\r
- STRING_TOKEN (STR_VOL_VOLINFO),\r
- gShellLevel2HiiHandle,\r
- SysInfo->VolumeLabel,\r
- SysInfo->ReadOnly?L"r":L"rw",\r
- SysInfo->VolumeSize,\r
- SysInfo->FreeSpace,\r
- SysInfo->BlockSize\r
- );\r
- SHELL_FREE_NON_NULL(SysInfo);\r
+ if (SysInfo != NULL) {\r
+ //\r
+ // print VolumeInfo table\r
+ //\r
+ ShellPrintHiiEx (\r
+ 0,\r
+ gST->ConOut->Mode->CursorRow,\r
+ NULL,\r
+ STRING_TOKEN (STR_VOL_VOLINFO),\r
+ gShellLevel2HiiHandle,\r
+ SysInfo->VolumeLabel,\r
+ SysInfo->ReadOnly?L"r":L"rw",\r
+ SysInfo->VolumeSize,\r
+ SysInfo->FreeSpace,\r
+ SysInfo->BlockSize\r
+ );\r
+ SHELL_FREE_NON_NULL(SysInfo);\r
+ }\r
\r
return (ShellStatus);\r
}\r