authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-12-05 14:27:03+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-12-05 14:27:03+01:00
loge349bb2b66ec25cfa57860fdf690333704eb7c96
tree1871eaddd466d647db42ddc9fd03f3086009e0d5
parentb294103c7ed9892c54800b00d054619177d35839

elf: upcast e_shnum to u64 to check for valid ranges


2 files changed, 2 insertions(+), 2 deletions(-)

src/link/Elf/Object.zig+1-1
...@@ -68,7 +68,7 @@ pub fn parse(self: *Object, elf_file: *Elf) !void {...@@ -68,7 +68,7 @@ pub fn parse(self: *Object, elf_file: *Elf) !void {
68 const gpa = elf_file.base.allocator;68 const gpa = elf_file.base.allocator;
6969
70 if (self.data.len < self.header.?.e_shoff or70 if (self.data.len < self.header.?.e_shoff or
71 self.data.len < self.header.?.e_shoff + self.header.?.e_shnum * @sizeOf(elf.Elf64_Shdr))71 self.data.len < self.header.?.e_shoff + @as(u64, @intCast(self.header.?.e_shnum)) * @sizeOf(elf.Elf64_Shdr))
72 {72 {
73 try elf_file.reportParseError2(73 try elf_file.reportParseError2(
74 self.index,74 self.index,
src/link/Elf/SharedObject.zig+1-1
...@@ -63,7 +63,7 @@ pub fn parse(self: *SharedObject, elf_file: *Elf) !void {...@@ -63,7 +63,7 @@ pub fn parse(self: *SharedObject, elf_file: *Elf) !void {
63 }63 }
6464
65 if (self.data.len < self.header.?.e_shoff or65 if (self.data.len < self.header.?.e_shoff or
66 self.data.len < self.header.?.e_shoff + self.header.?.e_shnum * @sizeOf(elf.Elf64_Shdr))66 self.data.len < self.header.?.e_shoff + @as(u64, @intCast(self.header.?.e_shnum)) * @sizeOf(elf.Elf64_Shdr))
67 {67 {
68 try elf_file.reportParseError2(68 try elf_file.reportParseError2(
69 self.index,69 self.index,