summaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2001-11-02 16:29:15 +0000
committerNick Clifton <nickc@redhat.com>2001-11-02 16:29:15 +0000
commit4279ab84d68f4c4616230b5fe19702f67a9bacb0 (patch)
tree8d74b4596458dc6f017a99d3aa2acb9efdc97dd4 /bfd
parent9da7bd5ec2de8b1357ce399605162b2af3a17073 (diff)
downloadgdb-4279ab84d68f4c4616230b5fe19702f67a9bacb0.tar.gz
Add comment
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/coffgen.c10
2 files changed, 13 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ce54d18fd61..c5896e1d974 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2001-11-02 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * coffgen.c (coff_object_p): Add comment to H.J.'s recent patch.
+
2001-11-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
* som.c (setup_sections): Initialize subspace_sections.
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index 2ae435b2dcd..3ce9f7849d0 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -280,6 +280,14 @@ coff_object_p (abfd)
bfd_coff_swap_filehdr_in (abfd, filehdr, &internal_f);
bfd_release (abfd, filehdr);
+ /* The XCOFF format has two sizes for the f_opthdr. SMALL_AOUTSZ
+ (less than aoutsz) used in object files and AOUTSZ (equal to
+ aoutsz) in executables. The bfd_coff_swap_aouthdr_in function
+ expects this header to be aoutsz bytes in length, so we use that
+ value in the call to bfd_alloc below. But we must be careful to
+ only read in f_opthdr bytes in the call to bfd_bread. We should
+ also attempt to catch corrupt or non-COFF binaries with a strange
+ value for f_opthdr. */
if (bfd_coff_bad_format_hook (abfd, &internal_f) == false
|| internal_f.f_opthdr > aoutsz)
{
@@ -294,7 +302,7 @@ coff_object_p (abfd)
opthdr = bfd_alloc (abfd, aoutsz);
if (opthdr == NULL)
- return 0;;
+ return 0;
if (bfd_bread (opthdr, (bfd_size_type) internal_f.f_opthdr, abfd)
!= internal_f.f_opthdr)
{