]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellLevel2CommandsLib/Ls.c
Cd - add more input verification.
[mirror_edk2.git] / ShellPkg / Library / UefiShellLevel2CommandsLib / Ls.c
index 440d2450f5c068ef537564493fb66ab93f8841fe..73765113f47444fbf4950d4a86ac299c2a63a468 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Main file for ls shell level 2 function.\r
 \r
-  Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -234,7 +234,7 @@ PrintLsOutput(
         //\r
         // exact match on all bits\r
         //\r
-        if ( Node->Info->Attribute != Attribs) {\r
+        if ( (Node->Info->Attribute|EFI_FILE_ARCHIVE) != (Attribs|EFI_FILE_ARCHIVE)) {\r
           continue;\r
         }\r
       }\r
@@ -348,7 +348,7 @@ PrintLsOutput(
   }\r
 \r
   if (Rec){\r
-    DirectoryName = AllocatePool(LongestPath + 2*sizeof(CHAR16));\r
+    DirectoryName = AllocateZeroPool(LongestPath + 2*sizeof(CHAR16));\r
     if (DirectoryName == NULL) {\r
       ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_MEM), gShellLevel2HiiHandle);\r
       ShellStatus = SHELL_OUT_OF_RESOURCES;\r
@@ -417,7 +417,7 @@ ShellCommandRunLs (
   UINTN         Count;\r
   CHAR16        *FullPath;\r
   UINTN         Size;\r
-  EFI_TIME      theTime;\r
+  EFI_TIME      TheTime;\r
   BOOLEAN       SfoMode;\r
 \r
   Size                = 0;\r
@@ -532,7 +532,7 @@ ShellCommandRunLs (
           ASSERT(FullPath == NULL);\r
           StrnCatGrow(&FullPath, NULL, L"*", 0);\r
         }\r
-        Status = gRT->GetTime(&theTime, NULL);\r
+        Status = gRT->GetTime(&TheTime, NULL);\r
         ASSERT_EFI_ERROR(Status);\r
         SfoMode = ShellCommandLineGetFlag(Package, L"-sfo");\r
         if (ShellStatus == SHELL_SUCCESS) {\r
@@ -543,7 +543,7 @@ ShellCommandRunLs (
             FullPath,\r
             TRUE,\r
             Count,\r
-            (INT16)(theTime.TimeZone==2047?0:theTime.TimeZone)\r
+            (INT16)(TheTime.TimeZone==2047?0:TheTime.TimeZone)\r
            );\r
           if (ShellStatus == SHELL_NOT_FOUND) {\r
             ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_FILES), gShellLevel2HiiHandle);\r