]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Application/Shell/FileHandleWrappers.c
ShellPkg: Refactor string manipulation
[mirror_edk2.git] / ShellPkg / Application / Shell / FileHandleWrappers.c
index 59c1ee55eeaec7ca8a1d7ca3ce73c6ef65a59eee..be786bb2b53bd4e131dcd5cac615a627839b42cc 100644 (file)
@@ -509,21 +509,20 @@ FileInterfaceStdInRead(
         if (StrStr(CurrentString + TabPos, L":") == NULL) {\r
           Cwd = ShellInfoObject.NewEfiShellProtocol->GetCurDir(NULL);\r
           if (Cwd != NULL) {\r
-            StrCpy(TabStr, Cwd);\r
+            StrnCpy(TabStr, Cwd, (*BufferSize)/sizeof(CHAR16) - 1);\r
             if (TabStr[StrLen(TabStr)-1] == L'\\' && *(CurrentString + TabPos) == L'\\' ) {\r
               TabStr[StrLen(TabStr)-1] = CHAR_NULL;\r
             }\r
             StrnCat(TabStr, CurrentString + TabPos, (StringLen - TabPos) * sizeof (CHAR16));\r
           } else {\r
-            StrCpy(TabStr, L"");\r
+            *TabStr = CHAR_NULL;\r
             StrnCat(TabStr, CurrentString + TabPos, (StringLen - TabPos) * sizeof (CHAR16));\r
           }\r
         } else {\r
-          StrCpy(TabStr, CurrentString + TabPos);\r
+          StrnCpy(TabStr, CurrentString + TabPos, (*BufferSize)/sizeof(CHAR16) - 1);\r
         }\r
-        StrCat(TabStr, L"*");\r
+        StrnCat(TabStr, L"*", (*BufferSize)/sizeof(CHAR16) - 1 - StrLen(TabStr));\r
         FoundFileList = NULL;\r
-//        TabStr = PathCleanUpDirectories(TabStr);\r
         Status  = ShellInfoObject.NewEfiShellProtocol->FindFiles(TabStr, &FoundFileList);\r
         for ( TempStr = CurrentString\r
             ; *TempStr == L' '\r
@@ -1168,7 +1167,7 @@ CreateFileInterfaceEnv(
   EnvFileInterface->Delete      = FileInterfaceEnvDelete;\r
   EnvFileInterface->Read        = FileInterfaceEnvRead;\r
 \r
-  StrCpy(EnvFileInterface->Name, EnvName);\r
+  StrnCpy(EnvFileInterface->Name, EnvName, StrLen(EnvName));\r
 \r
   //\r
   // Assign the different members for Volatile and Non-Volatile variables\r