diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2024-02-13 10:48:10 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2024-02-13 10:48:10 +0100 |
| commit | e5483b4ffc20614463e42741f132a55d58c01880 (patch) | |
| tree | 4a2f59c14a2c9c84e47fb0ccffc7a1e3556b50da /src | |
| parent | 8bd01eb7a914416a772b365dc75d83890067e26c (diff) | |
| download | zig-e5483b4ffc20614463e42741f132a55d58c01880.tar.gz zig-e5483b4ffc20614463e42741f132a55d58c01880.zip | |
elf: fix 32bit build
Diffstat (limited to 'src')
| -rw-r--r-- | src/link/Elf.zig | 4 | ||||
| -rw-r--r-- | src/link/Elf/Object.zig | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig index 9f8c6c1793..7f421d5d26 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -5903,8 +5903,8 @@ fn fmtDumpState( } /// Caller owns the memory. -pub fn preadAllAlloc(allocator: Allocator, handle: std.fs.File, offset: usize, size: usize) ![]u8 { - const buffer = try allocator.alloc(u8, size); +pub fn preadAllAlloc(allocator: Allocator, handle: std.fs.File, offset: u64, size: u64) ![]u8 { + const buffer = try allocator.alloc(u8, math.cast(usize, size) orelse return error.Overflow); errdefer allocator.free(buffer); const amt = try handle.preadAll(buffer, offset); if (amt != size) return error.InputOutput; diff --git a/src/link/Elf/Object.zig b/src/link/Elf/Object.zig index 92ac64169a..882025ab8c 100644 --- a/src/link/Elf/Object.zig +++ b/src/link/Elf/Object.zig @@ -945,7 +945,9 @@ fn preadShdrContentsAlloc(self: Object, allocator: Allocator, handle: std.fs.Fil assert(index < self.shdrs.items.len); const offset = if (self.archive) |ar| ar.offset else 0; const shdr = self.shdrs.items[index]; - return Elf.preadAllAlloc(allocator, handle, offset + shdr.sh_offset, shdr.sh_size); + const sh_offset = math.cast(u64, shdr.sh_offset) orelse return error.Overflow; + const sh_size = math.cast(u64, shdr.sh_size) orelse return error.Overflow; + return Elf.preadAllAlloc(allocator, handle, offset + sh_offset, sh_size); } /// Caller owns the memory. |
