From 58709c13106fcf6e9c0fe36615627838047e2dc4 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 12 Dec 2022 20:28:50 +0200 Subject: [PATCH] memset was clearing process data from memory --- Execute/Spawn.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Execute/Spawn.cpp b/Execute/Spawn.cpp index 392daf5..8b6ac51 100644 --- a/Execute/Spawn.cpp +++ b/Execute/Spawn.cpp @@ -155,6 +155,7 @@ namespace Execute { warn("TEXTREL ELF is not fully tested yet!"); MemoryImage = (uint8_t *)KernelAllocator.RequestPages(TO_PAGES(ElfAppSize)); + memset(MemoryImage, 0, ElfAppSize); for (uint64_t i = 0; i < TO_PAGES(ElfAppSize); i++) { pva.Remap((void *)((uint64_t)MemoryImage + (i * PAGE_SIZE)), (void *)((uint64_t)MemoryImage + (i * PAGE_SIZE)), Memory::PTFlag::RW | Memory::PTFlag::US); @@ -168,6 +169,7 @@ namespace Execute { debug("Allocating %ld pages for image", TO_PAGES(ElfAppSize)); MemoryImage = (uint8_t *)KernelAllocator.RequestPages(TO_PAGES(ElfAppSize)); + memset(MemoryImage, 0, ElfAppSize); for (uint64_t i = 0; i < TO_PAGES(ElfAppSize); i++) { pva.Remap((void *)((uint64_t)ProgramHeader->p_vaddr + (i * PAGE_SIZE)), (void *)((uint64_t)MemoryImage + (i * PAGE_SIZE)), Memory::PTFlag::RW | Memory::PTFlag::US); @@ -187,7 +189,6 @@ namespace Execute debug("PT_LOAD"); MAddr = (ItrProgramHeader.p_vaddr - BaseAddress) + (uintptr_t)MemoryImage; - memset(MemoryImage, 0, ItrProgramHeader.p_memsz); memcpy(MemoryImage, (uint8_t *)BaseImage + ItrProgramHeader.p_offset, ItrProgramHeader.p_filesz); debug("MemoryImage: %#lx", MemoryImage); debug("MAddr: %#lx", MAddr);