aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2020-12-22 10:57:58 +0100
committerJakub Konka <kubkon@jakubkonka.com>2020-12-22 10:57:58 +0100
commit34663abc9090d7b3afc2bc83d159c1d950b23e1d (patch)
tree574197640525af263c0679763634c70a7e635cbb /src
parentf106a46fd293605fab7cb776d36bb22cc482e692 (diff)
downloadzig-34663abc9090d7b3afc2bc83d159c1d950b23e1d.tar.gz
zig-34663abc9090d7b3afc2bc83d159c1d950b23e1d.zip
macho: pad out LINKEDIT upto specified filesize
Diffstat (limited to 'src')
-rw-r--r--src/link/MachO.zig5
1 files changed, 4 insertions, 1 deletions
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;
}