TempHandle = CreateFileInterfaceFile(TempHandle, FALSE);\r
}\r
Size = 0;\r
- if (((EFI_FILE_PROTOCOL*)TempHandle)->Read(TempHandle, &Size, NULL) != EFI_BUFFER_TOO_SMALL) {\r
+ if (TempHandle != NULL || ((EFI_FILE_PROTOCOL*)TempHandle)->Read(TempHandle, &Size, NULL) != EFI_BUFFER_TOO_SMALL) {\r
Status = EFI_INVALID_PARAMETER;\r
} else {\r
ShellParameters->StdIn = TempHandle;\r
MapName = StrnCatGrow(&MapName, NULL, PatternCopy, Count);\r
if (MapName == NULL) {\r
Status = EFI_OUT_OF_RESOURCES;\r
- }\r
-\r
- if (!EFI_ERROR(Status)) {\r
+ } else {\r
RootDevicePath = EfiShellGetDevicePathFromFilePath(PatternCopy);\r
if (RootDevicePath == NULL) {\r
Status = EFI_INVALID_PARAMETER;\r
@param[in] Path The unknown Path Value\r
\r
@retval NULL A memory allocation failed\r
- @retval NULL a fully qualified path could not be discovered.\r
- @retval other pointer to a fuly qualified path.\r
+ @retval NULL A fully qualified path could not be discovered.\r
+ @retval other An allocated pointer to a fuly qualified path.\r
**/\r
CHAR16*\r
EFIAPI\r
\r
PathCleanUpDirectories(PathToReturn);\r
\r
+ if (PathTpReturn == NULL) {\r
+ return NULL;\r
+ }\r
+\r
while (PathToReturn[StrLen(PathToReturn)-1] == L'*') {\r
PathToReturn[StrLen(PathToReturn)-1] = CHAR_NULL;\r
}\r
\r
@param[in] DirName Path to directory to test.\r
\r
- @retval EFI_SUCCESS The Path represents a directory\r
- @retval EFI_NOT_FOUND The Path does not represent a directory\r
- @return other The path failed to open\r
+ @retval EFI_SUCCESS The Path represents a directory\r
+ @retval EFI_NOT_FOUND The Path does not represent a directory\r
+ @retval EFI_OUT_OF_RESOURCES A memory allocation failed.\r
+ @return The path failed to open\r
**/\r
EFI_STATUS\r
EFIAPI\r
//\r
if (gEfiShellProtocol != NULL) {\r
TempLocation = StrnCatGrow(&TempLocation, NULL, DirName, 0);\r
+ if (TempLocation == NULL) {\r
+ ShellCloseFile(&Handle);\r
+ return (EFI_OUT_OF_RESOURCES);\r
+ }\r
TempLocation2 = StrStr(TempLocation, L":");\r
if (TempLocation2 != NULL && StrLen(StrStr(TempLocation, L":")) == 2) {\r
*(TempLocation2+1) = CHAR_NULL;\r