authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-09-29 21:43:01+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-09-29 21:43:01+02:00
log8e90b41ae044d976a710d608c95a7c801672d932
treed39fa843d427e351d2761ba9452a78ac047d9f2c
parent304d38e844f5c2aeb42e3879a230f5916e704c0d

elf: set shdr/phdr file size before growing in VM


1 files changed, 5 insertions(+), 5 deletions(-)

src/link/Elf.zig+5-5
......@@ -926,6 +926,11 @@ pub fn growAllocSection(self: *Elf, shdr_index: u16, needed_size: u64) !void {
926926 phdr.p_offset = new_offset;
927927 }
928928
929 shdr.sh_size = needed_size;
930 if (!is_zerofill) {
931 phdr.p_filesz = needed_size;
932 }
933
929934 const mem_capacity = self.allocatedVirtualSize(phdr.p_vaddr);
930935 if (needed_size > mem_capacity) {
931936 // 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 {
952957 }
953958 }
954959
955 shdr.sh_size = needed_size;
956960 phdr.p_memsz = needed_size;
957961
958 if (!is_zerofill) {
959 phdr.p_filesz = needed_size;
960 }
961
962962 self.markDirty(shdr_index, phdr_index);
963963}
964964