diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2023-09-29 21:43:01 +0200 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2023-09-29 21:43:01 +0200 |
| commit | 8e90b41ae044d976a710d608c95a7c801672d932 (patch) | |
| tree | d39fa843d427e351d2761ba9452a78ac047d9f2c | |
| parent | 304d38e844f5c2aeb42e3879a230f5916e704c0d (diff) | |
| download | zig-8e90b41ae044d976a710d608c95a7c801672d932.tar.gz zig-8e90b41ae044d976a710d608c95a7c801672d932.zip | |
elf: set shdr/phdr file size before growing in VM
| -rw-r--r-- | src/link/Elf.zig | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig index c669c80221..32e8c79441 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -926,6 +926,11 @@ pub fn growAllocSection(self: *Elf, shdr_index: u16, needed_size: u64) !void { phdr.p_offset = new_offset; } + shdr.sh_size = needed_size; + if (!is_zerofill) { + phdr.p_filesz = needed_size; + } + const mem_capacity = self.allocatedVirtualSize(phdr.p_vaddr); if (needed_size > mem_capacity) { // We are exceeding our allocated VM capacity so we need to shift everything in memory @@ -952,13 +957,8 @@ pub fn growAllocSection(self: *Elf, shdr_index: u16, needed_size: u64) !void { } } - shdr.sh_size = needed_size; phdr.p_memsz = needed_size; - if (!is_zerofill) { - phdr.p_filesz = needed_size; - } - self.markDirty(shdr_index, phdr_index); } |
