summaryrefslogtreecommitdiffhomepage
path: root/Private/NewBoot
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-04-25 09:38:24 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-04-25 09:38:24 +0200
commit1cae0d2cde6e775ecb1625aa93a5d65d996efad0 (patch)
tree59b85cf83b18f48c34591dc8f736215d2b747b19 /Private/NewBoot
parentf6a38d6c14b314d7b85855f311527ede869db96f (diff)
MHR-16: Load NewLoader correctly.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Private/NewBoot')
-rw-r--r--Private/NewBoot/Source/HEL/AMD64/BootMain.cxx16
1 files changed, 8 insertions, 8 deletions
diff --git a/Private/NewBoot/Source/HEL/AMD64/BootMain.cxx b/Private/NewBoot/Source/HEL/AMD64/BootMain.cxx
index 7120bcd9..cdbb2f36 100644
--- a/Private/NewBoot/Source/HEL/AMD64/BootMain.cxx
+++ b/Private/NewBoot/Source/HEL/AMD64/BootMain.cxx
@@ -170,20 +170,20 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
kernelFile.ReadAll(MIB(1), 4096);
if (kernelFile.Blob()) {
- PEFContainer* headerKind =
+ PEFContainer* containerKind =
reinterpret_cast<PEFContainer*>(kernelFile.Blob());
- if (headerKind->Magic[0] == kPefMagic[0] &&
- headerKind->Magic[1] == kPefMagic[1] &&
- headerKind->Magic[2] == kPefMagic[2] &&
- headerKind->Magic[3] == kPefMagic[3] &&
- headerKind->Magic[4] == kPefMagic[4]) {
- if (headerKind->Abi != kPefAbi || headerKind->Cpu != kPefArchAMD64) {
+ if (containerKind->Magic[0] == kPefMagic[0] &&
+ containerKind->Magic[1] == kPefMagic[1] &&
+ containerKind->Magic[2] == kPefMagic[2] &&
+ containerKind->Magic[3] == kPefMagic[3] &&
+ containerKind->Magic[4] == kPefMagic[4]) {
+ if (containerKind->Abi != kPefAbi || containerKind->Cpu != kPefArchAMD64) {
EFI::ThrowError(L"Bad-Architecture",
L"New Boot can't run this architecture.");
}
- NewOS::HEL::BootMainKind main = (NewOS::HEL::BootMainKind) nullptr;
+ NewOS::HEL::BootMainKind main = reinterpret_cast<NewOS::HEL::BootMainKind>(containerKind + containerKind->Start);
if (!main) {
EFI::ThrowError(L"Bad-Exec",