diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2024-08-10 17:19:37 +0200 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2024-08-10 17:19:37 +0200 |
| commit | 421b105d85507e6e3a98cfcf932ca6a8d14e2791 (patch) | |
| tree | 61fd792f9198778593fac9c5785f5f23fac25c00 /src | |
| parent | 3f2a0c3de47c8d359f3c7316badc281237d6c494 (diff) | |
| download | zig-421b105d85507e6e3a98cfcf932ca6a8d14e2791.tar.gz zig-421b105d85507e6e3a98cfcf932ca6a8d14e2791.zip | |
macho: ensure we only ever put named symbols in the symtab
Diffstat (limited to 'src')
| -rw-r--r-- | src/link/MachO/ZigObject.zig | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/link/MachO/ZigObject.zig b/src/link/MachO/ZigObject.zig index eb240017ea..98c18643fd 100644 --- a/src/link/MachO/ZigObject.zig +++ b/src/link/MachO/ZigObject.zig @@ -550,6 +550,8 @@ pub fn calcSymtabSize(self: *ZigObject, macho_file: *MachO) void { const file = ref.getFile(macho_file) orelse continue; if (file.getIndex() != self.index) continue; if (sym.getAtom(macho_file)) |atom| if (!atom.isAlive()) continue; + const name = sym.getName(macho_file); + assert(name.len > 0); sym.flags.output_symtab = true; if (sym.isLocal()) { sym.addExtra(.{ .symtab = self.output_symtab_ctx.nlocals }, macho_file); @@ -562,7 +564,7 @@ pub fn calcSymtabSize(self: *ZigObject, macho_file: *MachO) void { sym.addExtra(.{ .symtab = self.output_symtab_ctx.nimports }, macho_file); self.output_symtab_ctx.nimports += 1; } - self.output_symtab_ctx.strsize += @as(u32, @intCast(sym.getName(macho_file).len + 1)); + self.output_symtab_ctx.strsize += @as(u32, @intCast(name.len + 1)); } } |
