aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-08-06 08:51:06 +0200
committerJakub Konka <kubkon@jakubkonka.com>2024-08-07 10:21:02 +0200
commit835f1fc03f795663bfd98a768f132bf99168d40f (patch)
tree7b475ca0e79e227fe2c64505d928b671bc35072e /src
parent0a198789f14f56dc55e6006e243b36402e3c20fc (diff)
downloadzig-835f1fc03f795663bfd98a768f132bf99168d40f.tar.gz
zig-835f1fc03f795663bfd98a768f132bf99168d40f.zip
elf: fix off-by-one when referring to resolved table directly
Diffstat (limited to 'src')
-rw-r--r--src/link/Elf/Object.zig4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/link/Elf/Object.zig b/src/link/Elf/Object.zig
index 30324e1e21..b9903e7bbc 100644
--- a/src/link/Elf/Object.zig
+++ b/src/link/Elf/Object.zig
@@ -1119,7 +1119,7 @@ pub fn updateSymtabSize(self: *Object, elf_file: *Elf) void {
}
for (self.globals(), self.symbols_resolver.items) |*global, resolv| {
- 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 (!isAlive(global, elf_file)) continue;
@@ -1146,7 +1146,7 @@ pub fn writeSymtab(self: *Object, elf_file: *Elf) void {
}
for (self.globals(), self.symbols_resolver.items) |global, resolv| {
- 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;