From e349bb2b66ec25cfa57860fdf690333704eb7c96 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Tue, 5 Dec 2023 14:27:03 +0100 Subject: [PATCH] elf: upcast e_shnum to u64 to check for valid ranges --- src/link/Elf/Object.zig | 2 +- src/link/Elf/SharedObject.zig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/link/Elf/Object.zig b/src/link/Elf/Object.zig index 8b4c727083..dc02021f93 100644 --- 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 index fffa170cdc..2a39477805 100644 --- 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,