OSDN Git Service

include/coff/
authorjkratoch <jkratoch>
Mon, 10 Aug 2009 22:02:41 +0000 (22:02 +0000)
committerjkratoch <jkratoch>
Mon, 10 Aug 2009 22:02:41 +0000 (22:02 +0000)
Fix references past allocated memory for i386-*-go32.
* ti.h (COFF_ADJUST_FILEHDR_IN_POST, COFF_ADJUST_FILEHDR_OUT_POST):
Reference F_TARGET_ID only when !COFF0_P.

include/coff/ChangeLog
include/coff/ti.h

index a38228b..4aa9dc1 100644 (file)
@@ -1,5 +1,11 @@
 2009-08-10  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
+       Fix references past allocated memory for i386-*-go32.
+       * ti.h (COFF_ADJUST_FILEHDR_IN_POST, COFF_ADJUST_FILEHDR_OUT_POST):
+       Reference F_TARGET_ID only when !COFF0_P.
+
+2009-08-10  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
        Stop using bfd_usrdata in libbfd.
        * go32exe.h (struct external_filehdr_go32_exe <stub>, FILHSZ): Replace
        STUBSIZE by GO32_STUBSIZE.
index e0e1729..7f3ad7e 100644 (file)
@@ -102,19 +102,21 @@ struct external_filehdr
 #define COFF_ADJUST_FILEHDR_IN_POST(abfd, src, dst) \
   do                                                                   \
     {                                                                  \
-      ((struct internal_filehdr *)(dst))->f_target_id =                        \
-       H_GET_16 (abfd, ((FILHDR *)(src))->f_target_id);                \
+      if (!COFF0_P (abfd))                                             \
+       ((struct internal_filehdr *)(dst))->f_target_id =               \
+         H_GET_16 (abfd, ((FILHDR *)(src))->f_target_id);              \
     }                                                                  \
   while (0)
 #endif
 
 #ifndef COFF_ADJUST_FILEHDR_OUT_POST
 #define COFF_ADJUST_FILEHDR_OUT_POST(abfd, src, dst) \
-  do                                                                   \
-    {                                                                  \
-      H_PUT_16 (abfd, ((struct internal_filehdr *)(src))->f_target_id, \
-              ((FILHDR *)(dst))->f_target_id);                         \
-    }                                                                  \
+  do                                                                    \
+    {                                                                   \
+      if (!COFF0_P (abfd))                                              \
+       H_PUT_16 (abfd, ((struct internal_filehdr *)(src))->f_target_id, \
+                ((FILHDR *)(dst))->f_target_id);                        \
+    }                                                                   \
   while (0)
 #endif