* elfcore.h (elf_core_file_p): Ensure we have a backend match

with the correct arch size before rejecting the generic fallback.
	* elfcode.h (elf_object_p): Likewise.  Ensure arch size matches
	before accepting a target.
This commit is contained in:
Alan Modra 2008-08-01 12:21:28 +00:00
parent 010c8431b0
commit 11a7ae4fa9
3 changed files with 14 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2008-08-01 Alan Modra <amodra@bigpond.net.au>
Jan Kratochvil <jan.kratochvil@redhat.com>
* elfcore.h (elf_core_file_p): Ensure we have a backend match
with the correct arch size before rejecting the generic fallback.
* elfcode.h (elf_object_p): Likewise. Ensure arch size matches
before accepting a target.
2008-08-01 Alan Modra <amodra@bigpond.net.au>
* elf.c (rewrite_elf_program_header): Don't wrap p_paddr to

View File

@ -574,6 +574,8 @@ elf_object_p (bfd *abfd)
goto got_wrong_format_error;
ebd = get_elf_backend_data (abfd);
if (ebd->s->arch_size != ARCH_SIZE)
goto got_wrong_format_error;
/* Check that the ELF e_machine field matches what this particular
BFD format expects. */
@ -595,6 +597,8 @@ elf_object_p (bfd *abfd)
if ((*target_ptr)->flavour != bfd_target_elf_flavour)
continue;
back = xvec_get_elf_backend_data (*target_ptr);
if (back->s->arch_size != ARCH_SIZE)
continue;
if (back->elf_machine_code == i_ehdrp->e_machine
|| (back->elf_machine_alt1 != 0
&& back->elf_machine_alt1 == i_ehdrp->e_machine)

View File

@ -159,6 +159,8 @@ elf_core_file_p (bfd *abfd)
if ((*target_ptr)->flavour != bfd_target_elf_flavour)
continue;
back = xvec_get_elf_backend_data (*target_ptr);
if (back->s->arch_size != ARCH_SIZE)
continue;
if (back->elf_machine_code == i_ehdrp->e_machine
|| (back->elf_machine_alt1 != 0
&& i_ehdrp->e_machine == back->elf_machine_alt1)