forked from Imagelibrary/binutils-gdb
Add support for reading msdos MZ executables.
See email thread starting here: https://www.sourceware.org/ml/binutils/2018-01/msg00001.html include * coff/msdos.h: New header. * coff/pe.h: Move common defines to msdos.h. * coff/powerpc.h: Likewise. bfd * i386msdos.c (msdos_mkobject); New function. (msdos_object_p): New function. (i386_msdos_vec): Use msdos_object_p as the check_format function. * peicode.h: Rename external_PEI_DOS_hdr, DOSMAGIC, and NT_SIGNATURE to external_DOS_hdr, IMAGE_DOS_SIGNATURE, and IMAGE_NT_SIGNATURE. * peXXigen.c: Likewise. * coff-ia64.c: Likewise.
This commit is contained in:
committed by
Nick Clifton
parent
7e784da543
commit
830db0485e
@@ -1386,7 +1386,7 @@ static const bfd_target *
|
||||
pe_bfd_object_p (bfd * abfd)
|
||||
{
|
||||
bfd_byte buffer[6];
|
||||
struct external_PEI_DOS_hdr dos_hdr;
|
||||
struct external_DOS_hdr dos_hdr;
|
||||
struct external_PEI_IMAGE_hdr image_hdr;
|
||||
struct internal_filehdr internal_f;
|
||||
struct internal_aouthdr internal_a;
|
||||
@@ -1420,7 +1420,7 @@ pe_bfd_object_p (bfd * abfd)
|
||||
|
||||
/* There are really two magic numbers involved; the magic number
|
||||
that says this is a NT executable (PEI) and the magic number that
|
||||
determines the architecture. The former is DOSMAGIC, stored in
|
||||
determines the architecture. The former is IMAGE_DOS_SIGNATURE, stored in
|
||||
the e_magic field. The latter is stored in the f_magic field.
|
||||
If the NT magic number isn't valid, the architecture magic number
|
||||
could be mimicked by some other field (specifically, the number
|
||||
@@ -1428,7 +1428,7 @@ pe_bfd_object_p (bfd * abfd)
|
||||
correctly for a PEI file, check the e_magic number here, and, if
|
||||
it doesn't match, clobber the f_magic number so that we don't get
|
||||
a false match. */
|
||||
if (H_GET_16 (abfd, dos_hdr.e_magic) != DOSMAGIC)
|
||||
if (H_GET_16 (abfd, dos_hdr.e_magic) != IMAGE_DOS_SIGNATURE)
|
||||
{
|
||||
bfd_set_error (bfd_error_wrong_format);
|
||||
return NULL;
|
||||
|
||||
Reference in New Issue
Block a user