]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ShellPkg : Check pointer before dereferencing
authorjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 22 Feb 2013 18:20:55 +0000 (18:20 +0000)
committerjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 22 Feb 2013 18:20:55 +0000 (18:20 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <Jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14144 6f19259b-4bc3-4df7-8a09-765794883524

ShellPkg/Library/UefiShellLevel2CommandsLib/Cp.c

index 5dcb29419669491da4f897d955b41d18fbd2a473..86ac960d4265871ba8ca30c59d404cd980159343 100644 (file)
@@ -146,14 +146,16 @@ CopySingleFile(
     Size          = 0;\r
     StrnCatGrow(&TempName, &Size, Source, 0);\r
     StrnCatGrow(&TempName, &Size, L"\\*", 0);\r
-    ShellOpenFileMetaArg((CHAR16*)TempName, EFI_FILE_MODE_READ, &List);\r
-    *TempName = CHAR_NULL;\r
-    StrnCatGrow(&TempName, &Size, Dest, 0);\r
-    StrnCatGrow(&TempName, &Size, L"\\", 0);\r
-    ShellStatus = ValidateAndCopyFiles(List, TempName, SilentMode, TRUE, Resp);\r
-    ShellCloseFileMetaArg(&List);\r
-    FreePool(TempName);\r
-    Size = 0;\r
+    if (TempName != NULL) {\r
+      ShellOpenFileMetaArg((CHAR16*)TempName, EFI_FILE_MODE_READ, &List);\r
+      *TempName = CHAR_NULL;\r
+      StrnCatGrow(&TempName, &Size, Dest, 0);\r
+      StrnCatGrow(&TempName, &Size, L"\\", 0);\r
+      ShellStatus = ValidateAndCopyFiles(List, TempName, SilentMode, TRUE, Resp);\r
+      ShellCloseFileMetaArg(&List);\r
+      SHELL_FREE_NON_NULL(TempName);\r
+      Size = 0;\r
+    }\r
   } else {\r
     //\r
     // open file with create enabled\r