Index: Library/UefiShellLevel2CommandsLib/Cp.c
===================================================================
--- Library/UefiShellLevel2CommandsLib/Cp.c	(revision 14137)
+++ Library/UefiShellLevel2CommandsLib/Cp.c	(working copy)
@@ -146,14 +146,16 @@
     Size          = 0;
     StrnCatGrow(&TempName, &Size, Source, 0);
     StrnCatGrow(&TempName, &Size, L"\\*", 0);
-    ShellOpenFileMetaArg((CHAR16*)TempName, EFI_FILE_MODE_READ, &List);
-    *TempName = CHAR_NULL;
-    StrnCatGrow(&TempName, &Size, Dest, 0);
-    StrnCatGrow(&TempName, &Size, L"\\", 0);
-    ShellStatus = ValidateAndCopyFiles(List, TempName, SilentMode, TRUE, Resp);
-    ShellCloseFileMetaArg(&List);
-    FreePool(TempName);
-    Size = 0;
+    if (TempName != NULL) {
+      ShellOpenFileMetaArg((CHAR16*)TempName, EFI_FILE_MODE_READ, &List);
+      *TempName = CHAR_NULL;
+      StrnCatGrow(&TempName, &Size, Dest, 0);
+      StrnCatGrow(&TempName, &Size, L"\\", 0);
+      ShellStatus = ValidateAndCopyFiles(List, TempName, SilentMode, TRUE, Resp);
+      ShellCloseFileMetaArg(&List);
+      SHELL_FREE_NON_NULL(TempName);
+      Size = 0;
+    }
   } else {
     //
     // open file with create enabled
