/* Support for the generic parts of PE/PEI; the common executable parts.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
Written by Cygnus Solutions.
This file is part of BFD, the Binary File Descriptor library.
"Peering Inside the PE: A Tour of the Win32 Portable Executable
File Format", MSJ 1994, Volume 9.
+ The PE/PEI format is also used by .NET. ECMA-335 describes this:
+
+ "Standard ECMA-335 Common Language Infrastructure (CLI)", 6th Edition, June 2012.
+
+ This is also available at
+ https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf.
+
The *sole* difference between the pe format and the pei format is that the
latter has an MSDOS 2.0 .exe header on the front that prints the message
"This app must be run under Windows." (or some such).
a->NumberOfRvaAndSizes = H_GET_32 (abfd, src->NumberOfRvaAndSizes);
{
- int idx;
+ unsigned idx;
/* PR 17512: Corrupt PE binaries can cause seg-faults. */
if (a->NumberOfRvaAndSizes > IMAGE_NUMBEROF_DIRECTORY_ENTRIES)
{
/* xgettext:c-format */
_bfd_error_handler
- (_("%pB: aout header specifies an invalid number of data-directory entries: %ld"),
- abfd, a->NumberOfRvaAndSizes);
+ (_("%pB: aout header specifies an invalid number of"
+ " data-directory entries: %u"), abfd, a->NumberOfRvaAndSizes);
bfd_set_error (bfd_error_bad_value);
/* Paranoia: If the number is corrupt, then assume that the
fprintf (file, "\t(%s)",name);
fprintf (file, "\nMajorLinkerVersion\t%d\n", i->MajorLinkerVersion);
fprintf (file, "MinorLinkerVersion\t%d\n", i->MinorLinkerVersion);
- fprintf (file, "SizeOfCode\t\t%08lx\n", (unsigned long) i->SizeOfCode);
- fprintf (file, "SizeOfInitializedData\t%08lx\n",
- (unsigned long) i->SizeOfInitializedData);
- fprintf (file, "SizeOfUninitializedData\t%08lx\n",
- (unsigned long) i->SizeOfUninitializedData);
- fprintf (file, "AddressOfEntryPoint\t");
+ fprintf (file, "SizeOfCode\t\t");
+ bfd_fprintf_vma (abfd, file, i->SizeOfCode);
+ fprintf (file, "\nSizeOfInitializedData\t");
+ bfd_fprintf_vma (abfd, file, i->SizeOfInitializedData);
+ fprintf (file, "\nSizeOfUninitializedData\t");
+ bfd_fprintf_vma (abfd, file, i->SizeOfUninitializedData);
+ fprintf (file, "\nAddressOfEntryPoint\t");
bfd_fprintf_vma (abfd, file, i->AddressOfEntryPoint);
fprintf (file, "\nBaseOfCode\t\t");
bfd_fprintf_vma (abfd, file, i->BaseOfCode);
fprintf (file, "\nImageBase\t\t");
bfd_fprintf_vma (abfd, file, i->ImageBase);
- fprintf (file, "\nSectionAlignment\t");
- bfd_fprintf_vma (abfd, file, i->SectionAlignment);
- fprintf (file, "\nFileAlignment\t\t");
- bfd_fprintf_vma (abfd, file, i->FileAlignment);
- fprintf (file, "\nMajorOSystemVersion\t%d\n", i->MajorOperatingSystemVersion);
+ fprintf (file, "\nSectionAlignment\t%08x\n", i->SectionAlignment);
+ fprintf (file, "FileAlignment\t\t%08x\n", i->FileAlignment);
+ fprintf (file, "MajorOSystemVersion\t%d\n", i->MajorOperatingSystemVersion);
fprintf (file, "MinorOSystemVersion\t%d\n", i->MinorOperatingSystemVersion);
fprintf (file, "MajorImageVersion\t%d\n", i->MajorImageVersion);
fprintf (file, "MinorImageVersion\t%d\n", i->MinorImageVersion);
fprintf (file, "MajorSubsystemVersion\t%d\n", i->MajorSubsystemVersion);
fprintf (file, "MinorSubsystemVersion\t%d\n", i->MinorSubsystemVersion);
- fprintf (file, "Win32Version\t\t%08lx\n", (unsigned long) i->Reserved1);
- fprintf (file, "SizeOfImage\t\t%08lx\n", (unsigned long) i->SizeOfImage);
- fprintf (file, "SizeOfHeaders\t\t%08lx\n", (unsigned long) i->SizeOfHeaders);
- fprintf (file, "CheckSum\t\t%08lx\n", (unsigned long) i->CheckSum);
+ fprintf (file, "Win32Version\t\t%08x\n", i->Reserved1);
+ fprintf (file, "SizeOfImage\t\t%08x\n", i->SizeOfImage);
+ fprintf (file, "SizeOfHeaders\t\t%08x\n", i->SizeOfHeaders);
+ fprintf (file, "CheckSum\t\t%08x\n", i->CheckSum);
switch (i->Subsystem)
{