From 421b105d85507e6e3a98cfcf932ca6a8d14e2791 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Sat, 10 Aug 2024 17:19:37 +0200 Subject: macho: ensure we only ever put named symbols in the symtab --- src/link/MachO/ZigObject.zig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') 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)); } } -- cgit v1.2.3