diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-01-21 12:22:55 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-01-21 12:22:55 +0100 |
| commit | 92d5210e3729e6d17c0285383478fe4f1a81602a (patch) | |
| tree | 2685a592741c6f3c75073f6d24c3720012757345 /src | |
| parent | 01bf7aa774bdc5a11018670860f0698bd5409dd8 (diff) | |
| download | box64-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.c | 2 |
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; |