From c640186ec8aae6164123ee38de6409aed69eab12 Mon Sep 17 00:00:00 2001 From: Jeff Brasen Date: Sat, 12 Sep 2020 01:08:42 +0800 Subject: [PATCH] MdeModulePkg/HiiDatabase: Do not modify CONST string Update function behavior to not modify the incoming string that is marked as CONST in the prototype. Signed-off-by: Jeff Brasen Reviewed-by: Dandan Bi --- .../Universal/HiiDatabaseDxe/ConfigRouting.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c index 2cad6d29f4..d492b769d5 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c @@ -5497,7 +5497,6 @@ HiiBlockToConfig ( UINTN Index; UINT8 *TemBuffer; CHAR16 *TemString; - CHAR16 TemChar; TmpBuffer = NULL; @@ -5564,10 +5563,13 @@ HiiBlockToConfig ( // // Copy and an additional '&' to // - TemChar = *StringPtr; - *StringPtr = '\0'; - AppendToMultiString(Config, ConfigRequest); - *StringPtr = TemChar; + TemString = AllocateCopyPool (sizeof (CHAR16) * (StringPtr - ConfigRequest + 1), ConfigRequest); + if (TemString == NULL) { + return EFI_OUT_OF_RESOURCES; + } + TemString[StringPtr - ConfigRequest] = '\0'; + AppendToMultiString(Config, TemString); + FreePool (TemString); // // Parse each if exists -- 2.39.2