authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-10-12 01:54:56-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-10-12 10:44:17-07:00
log344a21b14f8ddcd30d376953e2f4c6a81eae2ccb
tree067c1ac922228d8b657fd69825f9f36f0610c035
parent9b0a3942ef22e35a08377265daf4bc3168a1ae21

fix 32-bit build


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

src/link/Elf/SharedObject.zig+4-3
......@@ -138,7 +138,7 @@ pub fn parseHeader(
138138
139139 const dynamic_table: []elf.Elf64_Dyn = if (dynamic_sect_index) |index| dt: {
140140 const shdr = sections[index];
141 const n = shdr.sh_size / @sizeOf(elf.Elf64_Dyn);
141 const n = std.math.cast(usize, shdr.sh_size / @sizeOf(elf.Elf64_Dyn)) orelse return error.Overflow;
142142 const dynamic_table = try gpa.alloc(elf.Elf64_Dyn, n);
143143 errdefer gpa.free(dynamic_table);
144144 const buf = mem.sliceAsBytes(dynamic_table);
......@@ -155,7 +155,8 @@ pub fn parseHeader(
155155 const dynsym_shdr = sections[index];
156156 if (dynsym_shdr.sh_link >= sections.len) return error.BadStringTableIndex;
157157 const strtab_shdr = sections[dynsym_shdr.sh_link];
158 const buf = try strtab.addManyAsSlice(gpa, strtab_shdr.sh_size);
158 const n = std.math.cast(usize, strtab_shdr.sh_size) orelse return error.Overflow;
159 const buf = try strtab.addManyAsSlice(gpa, n);
159160 const amt = try fs_file.preadAll(buf, strtab_shdr.sh_offset);
160161 if (amt != buf.len) return error.UnexpectedEndOfFile;
161162 }
......@@ -194,7 +195,7 @@ pub fn parse(
194195) !Parsed {
195196 const symtab = if (header.dynsym_sect_index) |index| st: {
196197 const shdr = header.sections[index];
197 const n = shdr.sh_size / @sizeOf(elf.Elf64_Sym);
198 const n = std.math.cast(usize, shdr.sh_size / @sizeOf(elf.Elf64_Sym)) orelse return error.Overflow;
198199 const symtab = try gpa.alloc(elf.Elf64_Sym, n);
199200 errdefer gpa.free(symtab);
200201 const buf = mem.sliceAsBytes(symtab);