aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-08-07 09:41:28 +0200
committerJakub Konka <kubkon@jakubkonka.com>2024-08-07 10:21:03 +0200
commit90c4037819b44f285e78dafac5a0196abb36b86a (patch)
tree78e4a433476d468fbf7c8598e36dc7eecd1340c2 /src
parent128289fda1bc6cd361182adc1d47863509399d63 (diff)
downloadzig-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.zig4
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;