diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index 34758bf2e8..30c8a40ad5 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -353,8 +353,11 @@ int Process::do_exec(const String& path, Vector&& arguments, Vector&& arguments, VectorlinearAddress.offset(defaultStackSize).get() & 0xfffffff8; + m_stackTop3 = m_stack_region->linearAddress.offset(defaultStackSize).get(); m_tss.esp = m_stackTop3; m_tss.ss0 = 0x10; m_tss.esp0 = old_esp0; @@ -660,7 +663,7 @@ Process::Process(String&& name, uid_t uid, gid_t gid, pid_t ppid, RingLevel ring } else { auto* region = allocate_region(LinearAddress(), defaultStackSize, "stack"); ASSERT(region); - m_stackTop3 = region->linearAddress.offset(defaultStackSize).get() & 0xfffffff8; + m_stackTop3 = region->linearAddress.offset(defaultStackSize).get(); m_tss.esp = m_stackTop3; } }