commit e349bb2b66ec25cfa57860fdf690333704eb7c96 (tree)
parent b294103c7ed9892c54800b00d054619177d35839
Author: Jakub Konka <kubkon@jakubkonka.com>
Date: Tue, 5 Dec 2023 14:27:03 +0100
elf: upcast e_shnum to u64 to check for valid ranges
Diffstat:
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/link/Elf/Object.zig b/src/link/Elf/Object.zig
@@ -68,7 +68,7 @@ pub fn parse(self: *Object, elf_file: *Elf) !void {
const gpa = elf_file.base.allocator;
if (self.data.len < self.header.?.e_shoff or
- self.data.len < self.header.?.e_shoff + self.header.?.e_shnum * @sizeOf(elf.Elf64_Shdr))
+ self.data.len < self.header.?.e_shoff + @as(u64, @intCast(self.header.?.e_shnum)) * @sizeOf(elf.Elf64_Shdr))
{
try elf_file.reportParseError2(
self.index,
diff --git a/src/link/Elf/SharedObject.zig b/src/link/Elf/SharedObject.zig
@@ -63,7 +63,7 @@ pub fn parse(self: *SharedObject, elf_file: *Elf) !void {
}
if (self.data.len < self.header.?.e_shoff or
- self.data.len < self.header.?.e_shoff + self.header.?.e_shnum * @sizeOf(elf.Elf64_Shdr))
+ self.data.len < self.header.?.e_shoff + @as(u64, @intCast(self.header.?.e_shnum)) * @sizeOf(elf.Elf64_Shdr))
{
try elf_file.reportParseError2(
self.index,