commit 9097bcc06e8d9c4691fac18f7a6b4d7f2d63eefe (tree)
parent f0bac8037ca373be4796fcedeb4b40bc40a5e846
Author: David Rubin <daviru007@icloud.com>
Date: Sun, 14 Jan 2024 22:21:30 +0000
add `SHT_NOBITS` check
Diffstat:
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/link/Elf/SharedObject.zig b/src/link/Elf/SharedObject.zig
@@ -84,9 +84,11 @@ pub fn parse(self: *SharedObject, elf_file: *Elf) !void {
try self.shdrs.ensureTotalCapacityPrecise(gpa, shdrs.len);
for (shdrs, 0..) |shdr, i| {
- if (self.data.len < shdr.sh_offset or self.data.len < shdr.sh_offset + shdr.sh_size) {
- try elf_file.reportParseError2(self.index, "corrupted section header", .{});
- return error.MalformedObject;
+ if (shdr.sh_type != elf.SHT_NOBITS) {
+ if (self.data.len < shdr.sh_offset or self.data.len < shdr.sh_offset + shdr.sh_size) {
+ try elf_file.reportParseError2(self.index, "corrupted section header", .{});
+ return error.MalformedObject;
+ }
}
self.shdrs.appendAssumeCapacity(try ElfShdr.fromElf64Shdr(shdr));
switch (shdr.sh_type) {