| author | |
| committer | |
| log | cdcb34cdf42fa3eb7a399106ccd57efc87643032 |
| tree | dfe6f49534679b4eb5aaae77292345e03db11b0a |
| parent | 6d04ab6d5be1eaa47a920aaa3989bd3515fec5d6 |
| signature |
7 files changed, 9 insertions(+), 7 deletions(-)
lib/std/debug.zig+1-1| ... | ... | @@ -842,7 +842,7 @@ pub fn readElfDebugInfo(allocator: mem.Allocator, elf_file: File) !ModuleDebugIn |
| 842 | 842 | nosuspend { |
| 843 | 843 | const mapped_mem = try mapWholeFile(elf_file); |
| 844 | 844 | const hdr = @ptrCast(*const elf.Ehdr, &mapped_mem[0]); |
| 845 | if (!mem.eql(u8, hdr.e_ident[0..4], "\x7fELF")) return error.InvalidElfMagic; | |
| 845 | if (!mem.eql(u8, hdr.e_ident[0..4], elf.MAGIC)) return error.InvalidElfMagic; | |
| 846 | 846 | if (hdr.e_ident[elf.EI_VERSION] != 1) return error.InvalidElfVersion; |
| 847 | 847 | |
| 848 | 848 | const endian: std.builtin.Endian = switch (hdr.e_ident[elf.EI_DATA]) { |
lib/std/dynamic_library.zig+1-1| ... | ... | @@ -133,7 +133,7 @@ pub const ElfDynLib = struct { |
| 133 | 133 | defer os.munmap(file_bytes); |
| 134 | 134 | |
| 135 | 135 | const eh = @ptrCast(*elf.Ehdr, file_bytes.ptr); |
| 136 | if (!mem.eql(u8, eh.e_ident[0..4], "\x7fELF")) return error.NotElfFile; | |
| 136 | if (!mem.eql(u8, eh.e_ident[0..4], elf.MAGIC)) return error.NotElfFile; | |
| 137 | 137 | if (eh.e_type != elf.ET.DYN) return error.NotDynamicLibrary; |
| 138 | 138 | |
| 139 | 139 | const elf_addr = @ptrToInt(file_bytes.ptr); |
lib/std/elf.zig+3-1| ... | ... | @@ -305,6 +305,8 @@ pub const STT_ARM_16BIT = STT_HIPROC; |
| 305 | 305 | pub const VER_FLG_BASE = 0x1; |
| 306 | 306 | pub const VER_FLG_WEAK = 0x2; |
| 307 | 307 | |
| 308 | pub const MAGIC = "\x7fELF"; | |
| 309 | ||
| 308 | 310 | /// File types |
| 309 | 311 | pub const ET = enum(u16) { |
| 310 | 312 | /// No file type |
| ... | ... | @@ -367,7 +369,7 @@ pub const Header = struct { |
| 367 | 369 | pub fn parse(hdr_buf: *align(@alignOf(Elf64_Ehdr)) const [@sizeOf(Elf64_Ehdr)]u8) !Header { |
| 368 | 370 | const hdr32 = @ptrCast(*const Elf32_Ehdr, hdr_buf); |
| 369 | 371 | const hdr64 = @ptrCast(*const Elf64_Ehdr, hdr_buf); |
| 370 | if (!mem.eql(u8, hdr32.e_ident[0..4], "\x7fELF")) return error.InvalidElfMagic; | |
| 372 | if (!mem.eql(u8, hdr32.e_ident[0..4], MAGIC)) return error.InvalidElfMagic; | |
| 371 | 373 | if (hdr32.e_ident[EI_VERSION] != 1) return error.InvalidElfVersion; |
| 372 | 374 | |
| 373 | 375 | const endian: std.builtin.Endian = switch (hdr32.e_ident[EI_DATA]) { |
lib/std/os.zig+1-1| ... | ... | @@ -5325,7 +5325,7 @@ pub fn dl_iterate_phdr( |
| 5325 | 5325 | const elf_base = std.process.getBaseAddress(); |
| 5326 | 5326 | const ehdr = @intToPtr(*elf.Ehdr, elf_base); |
| 5327 | 5327 | // Make sure the base address points to an ELF image. |
| 5328 | assert(mem.eql(u8, ehdr.e_ident[0..4], "\x7fELF")); | |
| 5328 | assert(mem.eql(u8, ehdr.e_ident[0..4], elf.MAGIC)); | |
| 5329 | 5329 | const n_phdr = ehdr.e_phnum; |
| 5330 | 5330 | const phdrs = (@intToPtr([*]elf.Phdr, elf_base + ehdr.e_phoff))[0..n_phdr]; |
| 5331 | 5331 |
lib/std/os/test.zig+1-1| ... | ... | @@ -447,7 +447,7 @@ fn iter_fn(info: *dl_phdr_info, size: usize, counter: *usize) IterFnError!void { |
| 447 | 447 | // Find the ELF header |
| 448 | 448 | const elf_header = @intToPtr(*elf.Ehdr, reloc_addr - phdr.p_offset); |
| 449 | 449 | // Validate the magic |
| 450 | if (!mem.eql(u8, elf_header.e_ident[0..4], "\x7fELF")) return error.BadElfMagic; | |
| 450 | if (!mem.eql(u8, elf_header.e_ident[0..4], elf.MAGIC)) return error.BadElfMagic; | |
| 451 | 451 | // Consistency check |
| 452 | 452 | if (elf_header.e_phnum != info.dlpi_phnum) return error.FailedConsistencyCheck; |
| 453 | 453 |
lib/std/zig/system/NativeTargetInfo.zig+1-1| ... | ... | @@ -473,7 +473,7 @@ pub fn abiAndDynamicLinkerFromFile( |
| 473 | 473 | _ = try preadMin(file, &hdr_buf, 0, hdr_buf.len); |
| 474 | 474 | const hdr32 = @ptrCast(*elf.Elf32_Ehdr, &hdr_buf); |
| 475 | 475 | const hdr64 = @ptrCast(*elf.Elf64_Ehdr, &hdr_buf); |
| 476 | if (!mem.eql(u8, hdr32.e_ident[0..4], "\x7fELF")) return error.InvalidElfMagic; | |
| 476 | if (!mem.eql(u8, hdr32.e_ident[0..4], elf.MAGIC)) return error.InvalidElfMagic; | |
| 477 | 477 | const elf_endian: std.builtin.Endian = switch (hdr32.e_ident[elf.EI_DATA]) { |
| 478 | 478 | elf.ELFDATA2LSB => .Little, |
| 479 | 479 | elf.ELFDATA2MSB => .Big, |
src/link/Elf.zig+1-1| ... | ... | @@ -1827,7 +1827,7 @@ fn writeElfHeader(self: *Elf) !void { |
| 1827 | 1827 | var hdr_buf: [@sizeOf(elf.Elf64_Ehdr)]u8 = undefined; |
| 1828 | 1828 | |
| 1829 | 1829 | var index: usize = 0; |
| 1830 | hdr_buf[0..4].* = "\x7fELF".*; | |
| 1830 | hdr_buf[0..4].* = elf.MAGIC.*; | |
| 1831 | 1831 | index += 4; |
| 1832 | 1832 | |
| 1833 | 1833 | hdr_buf[index] = switch (self.ptr_width) { |