From 34663abc9090d7b3afc2bc83d159c1d950b23e1d Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Tue, 22 Dec 2020 10:57:58 +0100 Subject: [PATCH] macho: pad out LINKEDIT upto specified filesize --- src/link/MachO.zig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/link/MachO.zig b/src/link/MachO.zig index b51f094648..65dbe4e5f6 100644 --- a/src/link/MachO.zig +++ b/src/link/MachO.zig @@ -2280,6 +2280,7 @@ fn updateLinkeditSegmentSizes(self: *MachO) !void { const filesize = final_offset - linkedit_segment.inner.fileoff; linkedit_segment.inner.filesize = filesize; linkedit_segment.inner.vmsize = mem.alignForwardGeneric(u64, filesize, self.page_size); + try self.base.file.?.pwriteAll(&[_]u8{ 0 }, final_offset); self.load_commands_dirty = true; } @@ -2299,7 +2300,9 @@ fn writeLoadCommands(self: *MachO) !void { try lc.write(writer); } - try self.base.file.?.pwriteAll(buffer, @sizeOf(macho.mach_header_64)); + const off = @sizeOf(macho.mach_header_64); + log.debug("writing {} load commands from 0x{x} to 0x{x}", .{self.load_commands.items.len, off, off + sizeofcmds}); + try self.base.file.?.pwriteAll(buffer, off); self.load_commands_dirty = false; }