From 276ead3cefa945d1a9208f571acfd5ace7d850db Mon Sep 17 00:00:00 2001 From: Megamouse Date: Wed, 30 Sep 2026 01:43:08 +0200 Subject: [PATCH] elf: Fix offset in case of fixup_shdrs --- rpcs3/Loader/ELF.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rpcs3/Loader/ELF.h b/rpcs3/Loader/ELF.h index b19b9e452a..5816430824 100644 --- a/rpcs3/Loader/ELF.h +++ b/rpcs3/Loader/ELF.h @@ -436,7 +436,8 @@ public: header.e_shstrndx = this->header.e_shstrndx; stream.write(header); - sz_t off = header.e_shoff + u32{sizeof(shdr_t)} * ::size32(shdrs); + const sz_t data_start = header.e_shoff + u32{sizeof(shdr_t)} * header.e_shnum; + sz_t off = data_start; for (phdr_t phdr : progs) { @@ -457,7 +458,7 @@ public: if (is_memorizable_section(shdr.sh_type, shdr.sh_flags())) { usz p_index = umax; - usz data_base = header.e_shoff + u32{sizeof(shdr_t)} * ::size32(shdrs); + usz data_base = data_start; bool result = false; for (const auto& hdr : progs)