authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-08-02 22:58:10+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-08-03 21:19:41+02:00
log2c8fc3b5979d6ca8befbf5de48a661a6fadbe819
treebf31923511fe2f8721e42711eb44758819aed996
parent90e326827062fc7899d02516cdaffa7da8366077

macho: add missing u64 to usize casts

Fixes 32bit builds.

1 files changed, 6 insertions(+), 3 deletions(-)

src/link/MachO.zig+6-3
...@@ -1487,7 +1487,8 @@ pub fn parseDylib(...@@ -1487,7 +1487,8 @@ pub fn parseDylib(
1487 var file_size = math.cast(usize, file_stat.size) orelse return error.Overflow;1487 var file_size = math.cast(usize, file_stat.size) orelse return error.Overflow;
14881488
1489 const reader = file.reader();1489 const reader = file.reader();
1490 const fat_offset = try fat.getLibraryOffset(reader, cpu_arch);1490 const fat_offset = math.cast(usize, try fat.getLibraryOffset(reader, cpu_arch)) orelse
1491 return error.Overflow;
1491 try file.seekTo(fat_offset);1492 try file.seekTo(fat_offset);
1492 file_size -= fat_offset;1493 file_size -= fat_offset;
14931494
...@@ -5091,7 +5092,7 @@ fn writeDyldInfoData(self: *MachO, ncmds: *u32, lc_writer: anytype) !void {...@@ -5091,7 +5092,7 @@ fn writeDyldInfoData(self: *MachO, ncmds: *u32, lc_writer: anytype) !void {
5091 const needed_size = export_off + export_size - rebase_off;5092 const needed_size = export_off + export_size - rebase_off;
5092 link_seg.filesize = needed_size;5093 link_seg.filesize = needed_size;
50935094
5094 var buffer = try gpa.alloc(u8, needed_size);5095 var buffer = try gpa.alloc(u8, math.cast(usize, needed_size) orelse return error.Overflow);
5095 defer gpa.free(buffer);5096 defer gpa.free(buffer);
5096 mem.set(u8, buffer, 0);5097 mem.set(u8, buffer, 0);
50975098
...@@ -5115,7 +5116,9 @@ fn writeDyldInfoData(self: *MachO, ncmds: *u32, lc_writer: anytype) !void {...@@ -5115,7 +5116,9 @@ fn writeDyldInfoData(self: *MachO, ncmds: *u32, lc_writer: anytype) !void {
5115 });5116 });
51165117
5117 try self.base.file.?.pwriteAll(buffer, rebase_off);5118 try self.base.file.?.pwriteAll(buffer, rebase_off);
5118 try self.populateLazyBindOffsetsInStubHelper(buffer[lazy_bind_off - rebase_off ..][0..lazy_bind_size]);5119 const start = math.cast(usize, lazy_bind_off - rebase_off) orelse return error.Overflow;
5120 const end = start + (math.cast(usize, lazy_bind_size) orelse return error.Overflow);
5121 try self.populateLazyBindOffsetsInStubHelper(buffer[start..end]);
51195122
5120 try lc_writer.writeStruct(macho.dyld_info_command{5123 try lc_writer.writeStruct(macho.dyld_info_command{
5121 .cmd = .DYLD_INFO_ONLY,5124 .cmd = .DYLD_INFO_ONLY,