]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c
ShellPkg/UefiShellAcpiViewCommandLib: Fix ECC issues
[mirror_edk2.git] / ShellPkg / Library / UefiShellBcfgCommandLib / UefiShellBcfgCommandLib.c
index 1538bc6577f531868c0a8c6c701dd9df68362433..ee3db6335871456d29bd36e38446016fea4297b6 100644 (file)
@@ -143,10 +143,11 @@ UpdateOptionalData(
     OriginalOptionDataSize += (*(UINT16*)(OriginalData + sizeof(UINT32)));\r
     OriginalOptionDataSize -= OriginalSize;\r
     NewSize = OriginalSize - OriginalOptionDataSize + DataSize;\r
-    NewData = AllocateCopyPool(NewSize, OriginalData);\r
+    NewData = AllocatePool(NewSize);\r
     if (NewData == NULL) {\r
       Status = EFI_OUT_OF_RESOURCES;\r
     } else {\r
+      CopyMem (NewData, OriginalData, OriginalSize - OriginalOptionDataSize);\r
       CopyMem(NewData + OriginalSize - OriginalOptionDataSize, Data, DataSize);\r
     }\r
   }\r
@@ -402,6 +403,7 @@ BcfgMod (
   ShellStatus       = SHELL_SUCCESS;\r
   FileList          = NULL;\r
   DevicePath        = NULL;\r
+  DevicePathBuffer  = NULL;\r
 \r
   ZeroMem (&LoadOption, sizeof(EFI_BOOT_MANAGER_LOAD_OPTION));\r
 \r
@@ -1119,11 +1121,13 @@ BcfgAddOpt(
         // Now we know how many EFI_INPUT_KEY structs we need to attach to the end of the EFI_KEY_OPTION struct.  \r
         // Re-allocate with the added information.\r
         //\r
-        KeyOptionBuffer = AllocateCopyPool(sizeof(EFI_KEY_OPTION) + (sizeof(EFI_INPUT_KEY) * NewKeyOption.KeyData.Options.InputKeyCount), &NewKeyOption);\r
+        KeyOptionBuffer = AllocatePool (sizeof(EFI_KEY_OPTION) + (sizeof(EFI_INPUT_KEY) * NewKeyOption.KeyData.Options.InputKeyCount));\r
         if (KeyOptionBuffer == NULL) {\r
           ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_MEM), gShellBcfgHiiHandle, L"bcfg");  \r
           ShellStatus = SHELL_OUT_OF_RESOURCES;\r
+          return ShellStatus;\r
         }\r
+        CopyMem (KeyOptionBuffer, &NewKeyOption, sizeof(EFI_KEY_OPTION));\r
       }\r
       for (LoopCounter = 0 ; ShellStatus == SHELL_SUCCESS && LoopCounter < NewKeyOption.KeyData.Options.InputKeyCount; LoopCounter++) {\r
         //\r