]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/LoadLinuxLib/Linux.c
OvmfPkg: LoadLinuxLib: Zero kernel parameters instead of passing garbage
[mirror_edk2.git] / OvmfPkg / Library / LoadLinuxLib / Linux.c
index b06285c51a545721f07d79fb900d76a62b90923e..1da5507ff12ee19ca14b4f607ad999d4ff80445f 100644 (file)
@@ -119,6 +119,34 @@ LoadLinuxAllocateKernelSetupPages (
   }\r
 }\r
 \r
+EFI_STATUS\r
+EFIAPI\r
+LoadLinuxInitializeKernelSetup (\r
+  IN VOID        *KernelSetup\r
+  )\r
+{\r
+  EFI_STATUS                Status;\r
+  UINTN                     SetupEnd;\r
+  struct boot_params        *Bp;\r
+\r
+  Status = BasicKernelSetupCheck (KernelSetup);\r
+  if (EFI_ERROR (Status)) {\r
+    return Status;\r
+  }\r
+\r
+  Bp = (struct boot_params*) KernelSetup;\r
+\r
+  SetupEnd = 0x202 + (Bp->hdr.jump & 0xff);\r
+\r
+  //\r
+  // Clear all but the setup_header\r
+  //\r
+  ZeroMem (KernelSetup, 0x1f1);\r
+  ZeroMem (((UINT8 *)KernelSetup) + SetupEnd, 4096 - SetupEnd);\r
+  DEBUG ((EFI_D_INFO, "Cleared kernel setup 0-0x1f1, 0x%x-0x1000\n", SetupEnd));\r
+\r
+  return EFI_SUCCESS;\r
+}\r
 \r
 VOID*\r
 EFIAPI\r