diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2024-08-07 09:41:28 +0200 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2024-08-07 10:21:03 +0200 |
| commit | 90c4037819b44f285e78dafac5a0196abb36b86a (patch) | |
| tree | 78e4a433476d468fbf7c8598e36dc7eecd1340c2 /src | |
| parent | 128289fda1bc6cd361182adc1d47863509399d63 (diff) | |
| download | zig-90c4037819b44f285e78dafac5a0196abb36b86a.tar.gz zig-90c4037819b44f285e78dafac5a0196abb36b86a.zip | |
elf: fix off-by-one direct access to symbol resolver in ZigObject
Diffstat (limited to 'src')
| -rw-r--r-- | src/link/Elf/ZigObject.zig | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/link/Elf/ZigObject.zig b/src/link/Elf/ZigObject.zig index 806c157e89..46c249d29f 100644 --- a/src/link/Elf/ZigObject.zig +++ b/src/link/Elf/ZigObject.zig @@ -598,7 +598,7 @@ pub fn updateSymtabSize(self: *ZigObject, elf_file: *Elf) !void { for (self.global_symbols.items, self.symbols_resolver.items) |index, resolv| { const global = &self.symbols.items[index]; - const ref = elf_file.resolver.values.items[resolv]; + const ref = elf_file.resolver.values.items[resolv - 1]; const ref_sym = elf_file.symbol(ref) orelse continue; if (ref_sym.file(elf_file).?.index() != self.index) continue; if (global.atom(elf_file)) |atom_ptr| if (!atom_ptr.alive) continue; @@ -627,7 +627,7 @@ pub fn writeSymtab(self: ZigObject, elf_file: *Elf) void { for (self.global_symbols.items, self.symbols_resolver.items) |index, resolv| { const global = self.symbols.items[index]; - const ref = elf_file.resolver.values.items[resolv]; + const ref = elf_file.resolver.values.items[resolv - 1]; const ref_sym = elf_file.symbol(ref) orelse continue; if (ref_sym.file(elf_file).?.index() != self.index) continue; const idx = global.outputSymtabIndex(elf_file) orelse continue; |
