diff --git a/src/link/Elf/Object.zig b/src/link/Elf/Object.zig index 4d5b5378c4a8..469f0ac980d7 100644 --- a/src/link/Elf/Object.zig +++ b/src/link/Elf/Object.zig @@ -106,6 +106,9 @@ pub fn parseCommon( const header_buffer = try Elf.preadAllAlloc(gpa, handle, offset, @sizeOf(elf.Elf64_Ehdr)); defer gpa.free(header_buffer); self.header = @as(*align(1) const elf.Elf64_Ehdr, @ptrCast(header_buffer)).*; + if (!mem.eql(u8, self.header.?.e_ident[0..4], elf.MAGIC)) { + return diags.failParse(path, "not an ELF file", .{}); + } const em = target.toElfMachine(); if (em != self.header.?.e_machine) {