]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ShellPkg: Replace the usage of StrnCpy with CopyMem to avoid potential buffer overflo...
authorQiu Shumin <shumin.qiu@intel.com>
Wed, 10 Sep 2014 01:03:43 +0000 (01:03 +0000)
committershenshushi <shenshushi@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 10 Sep 2014 01:03:43 +0000 (01:03 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Qiu Shumin <shumin.qiu@intel.com>
Signed-off-by: Yao Jiewen <jiewen.yao@intel.com>
Reviewed-by: Jaben Carsey <Jaben.carsey@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16083 6f19259b-4bc3-4df7-8a09-765794883524

ShellPkg/Application/Shell/FileHandleWrappers.c

index be786bb2b53bd4e131dcd5cac615a627839b42cc..d3fc5dc578ad6213b4568c5a926f5b18744c9eed 100644 (file)
@@ -1140,6 +1140,7 @@ CreateFileInterfaceEnv(
   )\r
 {\r
   EFI_FILE_PROTOCOL_ENVIRONMENT  *EnvFileInterface;\r
+  UINTN                          EnvNameSize;\r
 \r
   if (EnvName == NULL) {\r
     return (NULL);\r
@@ -1148,7 +1149,8 @@ CreateFileInterfaceEnv(
   //\r
   // Get some memory\r
   //\r
-  EnvFileInterface = AllocateZeroPool(sizeof(EFI_FILE_PROTOCOL_ENVIRONMENT)+StrSize(EnvName));\r
+  EnvNameSize = StrSize(EnvName);\r
+  EnvFileInterface = AllocateZeroPool(sizeof(EFI_FILE_PROTOCOL_ENVIRONMENT)+EnvNameSize);\r
   if (EnvFileInterface == NULL){\r
     return (NULL);\r
   }\r
@@ -1166,8 +1168,8 @@ CreateFileInterfaceEnv(
   EnvFileInterface->Flush       = FileInterfaceNopGeneric;\r
   EnvFileInterface->Delete      = FileInterfaceEnvDelete;\r
   EnvFileInterface->Read        = FileInterfaceEnvRead;\r
-\r
-  StrnCpy(EnvFileInterface->Name, EnvName, StrLen(EnvName));\r
+  \r
+  CopyMem(EnvFileInterface->Name, EnvName, EnvNameSize);\r
 \r
   //\r
   // Assign the different members for Volatile and Non-Volatile variables\r