From: H.J. Lu Date: Sat, 3 Nov 2018 22:03:34 +0000 (-0700) Subject: elfedit: Move ELF header magic bytes check to get_file_header X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=675accbdcb5b50182a10dd112b7179b5b6337191;p=binutils-gdb.git elfedit: Move ELF header magic bytes check to get_file_header Skip the file if ELF header magic bytes doesn't match. * elfedit.c (update_elf_header): Move EI_MAG? check to ... (get_file_header): Here. --- diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 19475697b3b..bdbee0fff63 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2018-11-03 H.J. Lu + + * elfedit.c (update_elf_header): Move EI_MAG? check to ... + (get_file_header): Here. + 2018-11-02 H.J. Lu * configure.ac (AC_FUNC_MMAP): New. diff --git a/binutils/elfedit.c b/binutils/elfedit.c index 5ad846eb1ad..a9f7c9d8450 100644 --- a/binutils/elfedit.c +++ b/binutils/elfedit.c @@ -91,17 +91,6 @@ update_elf_header (const char *file_name, FILE *file) { int class, machine, type, status, osabi; - if (elf_header.e_ident[EI_MAG0] != ELFMAG0 - || elf_header.e_ident[EI_MAG1] != ELFMAG1 - || elf_header.e_ident[EI_MAG2] != ELFMAG2 - || elf_header.e_ident[EI_MAG3] != ELFMAG3) - { - error - (_("%s: Not an ELF file - wrong magic bytes at the start\n"), - file_name); - return 0; - } - if (elf_header.e_ident[EI_VERSION] != EV_CURRENT) { error @@ -212,6 +201,12 @@ get_file_header (FILE * file) if (fread (elf_header.e_ident, EI_NIDENT, 1, file) != 1) return 0; + if (elf_header.e_ident[EI_MAG0] != ELFMAG0 + || elf_header.e_ident[EI_MAG1] != ELFMAG1 + || elf_header.e_ident[EI_MAG2] != ELFMAG2 + || elf_header.e_ident[EI_MAG3] != ELFMAG3) + return 0; + /* Determine how to read the rest of the header. */ switch (elf_header.e_ident[EI_DATA]) { @@ -232,8 +227,6 @@ get_file_header (FILE * file) switch (elf_header.e_ident[EI_CLASS]) { default: - error (_("Unsupported EI_CLASS: %d\n"), - elf_header.e_ident[EI_CLASS]); return 0; case ELFCLASS32: