| ... | ... | @@ -1487,7 +1487,8 @@ pub fn parseDylib( |
| 1487 | 1487 | var file_size = math.cast(usize, file_stat.size) orelse return error.Overflow; |
| 1488 | 1488 | |
| 1489 | 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 | 1492 | try file.seekTo(fat_offset); |
| 1492 | 1493 | file_size -= fat_offset; |
| 1493 | 1494 | |
| ... | ... | @@ -5091,7 +5092,7 @@ fn writeDyldInfoData(self: *MachO, ncmds: *u32, lc_writer: anytype) !void { |
| 5091 | 5092 | const needed_size = export_off + export_size - rebase_off; |
| 5092 | 5093 | link_seg.filesize = needed_size; |
| 5093 | 5094 | |
| 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 | 5096 | defer gpa.free(buffer); |
| 5096 | 5097 | mem.set(u8, buffer, 0); |
| 5097 | 5098 | |
| ... | ... | @@ -5115,7 +5116,9 @@ fn writeDyldInfoData(self: *MachO, ncmds: *u32, lc_writer: anytype) !void { |
| 5115 | 5116 | }); |
| 5116 | 5117 | |
| 5117 | 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]); |
| 5119 | 5122 | |
| 5120 | 5123 | try lc_writer.writeStruct(macho.dyld_info_command{ |
| 5121 | 5124 | .cmd = .DYLD_INFO_ONLY, |