]> 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 a661b450e9b58dde75496d07659d4b272e410c5b..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