From 7bfa36c2215e13097bb5ddcb15d2a8a476102b55 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Fri, 18 Apr 2025 00:16:56 +0200 Subject: dev, kernel: important patches. Signed-off-by: Amlal El Mahrouss --- dev/boot/src/BootThread.cc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'dev/boot/src/BootThread.cc') diff --git a/dev/boot/src/BootThread.cc b/dev/boot/src/BootThread.cc index f1866a76..484c242d 100644 --- a/dev/boot/src/BootThread.cc +++ b/dev/boot/src/BootThread.cc @@ -80,6 +80,12 @@ namespace Boot fStack = new UInt8[mib_cast(16)]; + if (!fStack) + { + writer.Write("BootZ: Unable to allocate stack.\r"); + return; + } + LDR_SECTION_HEADER_PTR sectPtr = (LDR_SECTION_HEADER_PTR)(((Char*)opt_header_ptr) + header_ptr->SizeOfOptionalHeader); constexpr auto sectionForCode = ".text"; @@ -168,6 +174,21 @@ namespace Boot { fHandover = handover; + if (!fStartAddress) + { + return kEfiFail; + } + + if (!fHandover) + { + return kEfiFail; + } + + BootTextWriter writer; + + writer.Write("BootZ: Starting: ").Write(fBlobName).Write("\r"); + writer.Write("BootZ: Handover address: ").Write((UIntPtr)fHandover).Write("\r"); + if (own_stack) { return rt_jump_to_address(fStartAddress, fHandover, &fStack[mib_cast(16) - 1]); -- cgit v1.2.3