about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-01-21 12:22:55 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-01-21 12:22:55 +0100
commit92d5210e3729e6d17c0285383478fe4f1a81602a (patch)
tree2685a592741c6f3c75073f6d24c3720012757345 /src
parent01bf7aa774bdc5a11018670860f0698bd5409dd8 (diff)
downloadbox64-92d5210e3729e6d17c0285383478fe4f1a81602a.tar.gz
box64-92d5210e3729e6d17c0285383478fe4f1a81602a.zip
[ELFLOADER] Zero'd memory when using mmap and filesize smaller than memsize
Diffstat (limited to 'src')
-rw-r--r--src/elfs/elfloader.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/elfs/elfloader.c b/src/elfs/elfloader.c
index 58725968..cc5d4a6a 100644
--- a/src/elfs/elfloader.c
+++ b/src/elfs/elfloader.c
@@ -304,6 +304,8 @@ int AllocLoadElfMemory(box64context_t* context, elfheader_t* head, int mainbin)
                     try_mmap = 0;
                     printf_log(log_level, "Mapping failed, using regular mmap+read");
                 } else {
+                    if(e->p_memsz>e->p_filesz)
+                        memset((void*)((uintptr_t)p + e->p_filesz), 0, e->p_memsz-e->p_filesz);
                     setProtection_elf((uintptr_t)p, head->multiblocks[n].asize, prot);
                     head->multiblocks[n].p = p;