]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg/HiiDatabase: Do not modify CONST string
authorJeff Brasen <jbrasen@nvidia.com>
Fri, 11 Sep 2020 17:08:42 +0000 (01:08 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Wed, 7 Oct 2020 04:20:56 +0000 (04:20 +0000)
Update function behavior to not modify the incoming string that is
marked as CONST in the prototype.

Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
Reviewed-by: Dandan Bi <dandan.bi@intel.com>
MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c

index 2cad6d29f45529bdfc228bae0284cae2200ec798..d492b769d51c775df870f16eceeb0a9e6024a30d 100644 (file)
@@ -5497,7 +5497,6 @@ HiiBlockToConfig (
   UINTN                               Index;\r
   UINT8                               *TemBuffer;\r
   CHAR16                              *TemString;\r
-  CHAR16                              TemChar;\r
 \r
   TmpBuffer = NULL;\r
 \r
@@ -5564,10 +5563,13 @@ HiiBlockToConfig (
   //\r
   // Copy <ConfigHdr> and an additional '&' to <ConfigResp>\r
   //\r
-  TemChar = *StringPtr;\r
-  *StringPtr = '\0';\r
-  AppendToMultiString(Config, ConfigRequest);\r
-  *StringPtr = TemChar;\r
+  TemString = AllocateCopyPool (sizeof (CHAR16) * (StringPtr - ConfigRequest + 1), ConfigRequest);\r
+  if (TemString == NULL) {\r
+    return EFI_OUT_OF_RESOURCES;\r
+  }\r
+  TemString[StringPtr - ConfigRequest] = '\0';\r
+  AppendToMultiString(Config, TemString);\r
+  FreePool (TemString);\r
 \r
   //\r
   // Parse each <RequestElement> if exists\r