From 22a195485cef2bcbcdb3735dea53dea59f2110ad Mon Sep 17 00:00:00 2001 From: Philip Craig Date: Fri, 22 May 2026 10:57:05 +1000 Subject: [PATCH] write/elf: improve .symtab_shndx writing (#906) Write 0 if st_shndx is not `SHN_XINDEX`. --- src/write/elf/writer.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/write/elf/writer.rs b/src/write/elf/writer.rs index 0b09cd5..feb18d7 100644 --- a/src/write/elf/writer.rs +++ b/src/write/elf/writer.rs @@ -858,9 +858,13 @@ impl<'a> Writer<'a> { } if self.need_symtab_shndx { - let section_index = sym.section.unwrap_or(SectionIndex(0)); + let section_index = if st_shndx == elf::SHN_XINDEX { + sym.section.map_or(0, |s| s.0) + } else { + 0 + }; self.symtab_shndx_data - .write_pod(&U32::new(self.endian, section_index.0)); + .write_pod(&U32::new(self.endian, section_index)); } }