]> git.proxmox.com Git - mirror_edk2.git/commitdiff
DuetPkg: Move EfiLdr Handoff data to stack
authorjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Sat, 16 Oct 2010 18:51:21 +0000 (18:51 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Sat, 16 Oct 2010 18:51:21 +0000 (18:51 +0000)
The EfiLdr image may be overwritten later in the boot process.
This can lead to the Handoff structure being corrupted before
DxeIpl is finished with it.

To help prevent this, we move the Handoff structure to the
stack, and in DxeIpl make a copy of it.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10950 6f19259b-4bc3-4df7-8a09-765794883524

DuetPkg/DxeIpl/DxeInit.c
DuetPkg/EfiLdr/EfiLoader.c

index df360cbca9bc719b4f7f0e14da188cdffe4bf544..b10e273f0ce968442374990e163cf3ffbaf5c8d0 100644 (file)
@@ -138,7 +138,11 @@ Returns:
   VOID                  *MemoryDescriptor;\r
   VOID                  *NvStorageBase;\r
   CHAR8                 PrintBuffer[256];\r
-  \r
+  EFILDRHANDOFF         HandoffCopy;\r
+\r
+  CopyMem ((VOID*) &HandoffCopy, (VOID*) Handoff, sizeof (EFILDRHANDOFF));\r
+  Handoff = &HandoffCopy;\r
+\r
   ClearScreen();\r
   PrintString("Enter DxeIpl ...\n");\r
   \r
index 609e5474832b4bf4ab0033519eb0fb64925b39c4..f10db53552a6eaa0d26d7d4100ade9d34f37aa53 100644 (file)
@@ -50,7 +50,7 @@ EfiLoader (
   UINTN                 BfvBase;\r
   EFI_MAIN_ENTRYPOINT   EfiMainEntrypoint;\r
   CHAR8                 PrintBuffer[256];\r
-  STATIC EFILDRHANDOFF  Handoff;\r
+  EFILDRHANDOFF         Handoff;\r
 \r
   ClearScreen();\r
   \r