From 8e90b41ae044d976a710d608c95a7c801672d932 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Fri, 29 Sep 2023 21:43:01 +0200 Subject: [PATCH] elf: set shdr/phdr file size before growing in VM --- src/link/Elf.zig | 10 +++++----- 1 file 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); }