Response = *Resp;\r
Attr = 0;\r
CleanFilePathStr = NULL;\r
+ FullCwd = NULL;\r
\r
- FullCwd = AllocateZeroPool(StrSize(Cwd) + sizeof(CHAR16));\r
- if (FullCwd == NULL) {\r
- return SHELL_OUT_OF_RESOURCES;\r
- } else {\r
- StrCpyS(FullCwd, StrSize(Cwd)/sizeof(CHAR16)+1, Cwd);\r
- StrCatS(FullCwd, StrSize(Cwd)/sizeof(CHAR16)+1, L"\\");\r
- }\r
+ if (Cwd != NULL) {\r
+ FullCwd = AllocateZeroPool(StrSize(Cwd) + sizeof(CHAR16));\r
+ if (FullCwd == NULL) {\r
+ return SHELL_OUT_OF_RESOURCES;\r
+ } else {\r
+ StrCpyS(FullCwd, StrSize(Cwd)/sizeof(CHAR16)+1, Cwd);\r
+ StrCatS(FullCwd, StrSize(Cwd)/sizeof(CHAR16)+1, L"\\");\r
+ }\r
+ } \r
\r
Status = ShellLevel2StripQuotes (DestParameter, &CleanFilePathStr);\r
if (EFI_ERROR (Status)) {\r
- FreePool (FullCwd);\r
+ SHELL_FREE_NON_NULL(FullCwd);\r
if (Status == EFI_OUT_OF_RESOURCES) {\r
return SHELL_OUT_OF_RESOURCES;\r
} else {\r
FreePool (CleanFilePathStr);\r
\r
if (ShellStatus != SHELL_SUCCESS) {\r
- FreePool (FullCwd);\r
+ SHELL_FREE_NON_NULL (FullCwd);\r
return (ShellStatus);\r
}\r
DestPath = PathCleanUpDirectories(DestPath);\r
SHELL_FREE_NON_NULL(DestPath);\r
SHELL_FREE_NON_NULL(HiiOutput);\r
SHELL_FREE_NON_NULL(HiiResultOk);\r
- FreePool (FullCwd);\r
+ SHELL_FREE_NON_NULL(FullCwd);\r
return (SHELL_OUT_OF_RESOURCES);\r
}\r
\r
//\r
// indicate to stop everything\r
//\r
- FreePool(FullCwd);\r
+ SHELL_FREE_NON_NULL(FullCwd);\r
return (SHELL_ABORTED);\r
case ShellPromptResponseAll:\r
*Resp = Response;\r
break;\r
default:\r
FreePool(Response);\r
- FreePool(FullCwd);\r
+ SHELL_FREE_NON_NULL(FullCwd);\r
return SHELL_ABORTED;\r
}\r
Status = ShellDeleteFileByName(FullDestPath!=NULL? FullDestPath:DestPath);\r
SHELL_FREE_NON_NULL(DestPath);\r
SHELL_FREE_NON_NULL(HiiOutput);\r
SHELL_FREE_NON_NULL(HiiResultOk);\r
- FreePool (FullCwd);\r
+ SHELL_FREE_NON_NULL(FullCwd);\r
return (ShellStatus);\r
}\r
\r