From 2acd2ed75ddad7556518897db18104c40eafb9e7 Mon Sep 17 00:00:00 2001 From: apio Date: Sat, 22 Apr 2023 12:19:22 +0200 Subject: [PATCH] kernel/ELF: Avoid zeroing out memory twice --- kernel/src/ELF.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel/src/ELF.cpp b/kernel/src/ELF.cpp index 350ac265..b7e797e0 100644 --- a/kernel/src/ELF.cpp +++ b/kernel/src/ELF.cpp @@ -101,9 +101,12 @@ namespace ELFLoader if (can_execute_segment(program_header.p_flags)) flags &= ~MMU::NoExecute; // Allocate physical memory for the segment - TRY(MemoryManager::alloc_at_zeroed( + TRY(MemoryManager::alloc_at( base_vaddr, get_blocks_from_size(program_header.p_memsz + vaddr_diff, ARCH_PAGE_SIZE), flags)); + // Zero out unused memory (before the start of the segment) + memset((void*)base_vaddr, 0, vaddr_diff); + // Load the file section of the segment inode->read((u8*)program_header.p_vaddr, program_header.p_offset, program_header.p_filesz);