]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c
This patch replaces StrCpy with StrnCpy or refactors out the usage of StrCpy through...
[mirror_edk2.git] / ShellPkg / Library / UefiShellLevel2CommandsLib / Rm.c
index 53db2222f2601d3a1396609421488850ac5aa776..6cc5dcf69107a91a6ea98f0b6aa56a5fa5f4cf81 100644 (file)
@@ -77,6 +77,7 @@ CascadeDelete(
   EFI_STATUS            Status;\r
   SHELL_PROMPT_RESPONSE *Resp;\r
   CHAR16                *TempName;\r
+  UINTN                 NewSize;\r
 \r
   Resp                  = NULL;\r
   ShellStatus           = SHELL_SUCCESS;\r
@@ -125,13 +126,14 @@ CascadeDelete(
           //\r
           // Update the node filename to have full path with file system identifier\r
           //\r
-          TempName = AllocateZeroPool(StrSize(Node->FullName) + StrSize(Node2->FullName));\r
+          NewSize = StrSize(Node->FullName) + StrSize(Node2->FullName);\r
+          TempName = AllocateZeroPool(NewSize);\r
           if (TempName == NULL) {\r
             ShellStatus = SHELL_OUT_OF_RESOURCES;\r
           } else {\r
-            StrCpy(TempName, Node->FullName);\r
+            StrnCpy(TempName, Node->FullName, NewSize/sizeof(CHAR16) -1);\r
             TempName[StrStr(TempName, L":")+1-TempName] = CHAR_NULL;\r
-            StrCat(TempName, Node2->FullName);\r
+            StrnCat(TempName, Node2->FullName, NewSize/sizeof(CHAR16) -1 - StrLen(TempName));\r
             FreePool((VOID*)Node2->FullName);\r
             Node2->FullName = TempName;\r
 \r
@@ -175,7 +177,9 @@ CascadeDelete(
     ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE_ERR), gShellLevel2HiiHandle, Status);\r
     return (SHELL_ACCESS_DENIED);\r
   } else {\r
-    ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE_COMP), gShellLevel2HiiHandle);\r
+    if (!Quiet) {\r
+      ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE_COMP), gShellLevel2HiiHandle);\r
+    }\r
     return (SHELL_SUCCESS);\r
   }\r
 }\r