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(...@@ -138,7 +138,7 @@ pub fn parseHeader(
138138
139 const dynamic_table: []elf.Elf64_Dyn = if (dynamic_sect_index) |index| dt: {139 const dynamic_table: []elf.Elf64_Dyn = if (dynamic_sect_index) |index| dt: {
140 const shdr = sections[index];140 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;
142 const dynamic_table = try gpa.alloc(elf.Elf64_Dyn, n);142 const dynamic_table = try gpa.alloc(elf.Elf64_Dyn, n);
143 errdefer gpa.free(dynamic_table);143 errdefer gpa.free(dynamic_table);
144 const buf = mem.sliceAsBytes(dynamic_table);144 const buf = mem.sliceAsBytes(dynamic_table);
...@@ -155,7 +155,8 @@ pub fn parseHeader(...@@ -155,7 +155,8 @@ pub fn parseHeader(
155 const dynsym_shdr = sections[index];155 const dynsym_shdr = sections[index];
156 if (dynsym_shdr.sh_link >= sections.len) return error.BadStringTableIndex;156 if (dynsym_shdr.sh_link >= sections.len) return error.BadStringTableIndex;
157 const strtab_shdr = sections[dynsym_shdr.sh_link];157 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);
159 const amt = try fs_file.preadAll(buf, strtab_shdr.sh_offset);160 const amt = try fs_file.preadAll(buf, strtab_shdr.sh_offset);
160 if (amt != buf.len) return error.UnexpectedEndOfFile;161 if (amt != buf.len) return error.UnexpectedEndOfFile;
161 }162 }
...@@ -194,7 +195,7 @@ pub fn parse(...@@ -194,7 +195,7 @@ pub fn parse(
194) !Parsed {195) !Parsed {
195 const symtab = if (header.dynsym_sect_index) |index| st: {196 const symtab = if (header.dynsym_sect_index) |index| st: {
196 const shdr = header.sections[index];197 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;
198 const symtab = try gpa.alloc(elf.Elf64_Sym, n);199 const symtab = try gpa.alloc(elf.Elf64_Sym, n);
199 errdefer gpa.free(symtab);200 errdefer gpa.free(symtab);
200 const buf = mem.sliceAsBytes(symtab);201 const buf = mem.sliceAsBytes(symtab);