mach-o: fix section name conversion from bfd to mach-o.
authorTristan Gingold <tristan.gingold@adacore.com>
Fri, 4 Apr 2014 10:38:24 +0000 (12:38 +0200)
committerTristan Gingold <tristan.gingold@adacore.com>
Fri, 4 Apr 2014 12:32:01 +0000 (14:32 +0200)
bfd/
* mach-o.c (bfd_mach_o_convert_section_name_to_mach_o): Fix
thinko on names length.

bfd/ChangeLog
bfd/mach-o.c

index 1eac58ad15c5552395ab4008d934fa0c7c98dfb9..d07053a9fde4ed52b406e79e3ce803ae4995d621 100644 (file)
@@ -1,3 +1,8 @@
+2014-04-04  Tristan Gingold  <gingold@adacore.com>
+
+       * mach-o.c (bfd_mach_o_convert_section_name_to_mach_o): Fix
+       thinko on names length.
+
 2014-04-04  Tristan Gingold  <gingold@adacore.com>
 
        * mach-o-i386.c (bfd_mach_o_i386_swap_reloc_out): Use target index
index 43b24c9c0897b5671251955050a95594fe6a099e..5203c0f520fe4e39296e13cc994689914d92c7cb 100644 (file)
@@ -467,7 +467,8 @@ bfd_mach_o_convert_section_name_to_mach_o (bfd *abfd ATTRIBUTE_UNUSED,
       seglen = dot - name;
       seclen = len - (dot + 1 - name);
 
-      if (seglen < 16 && seclen < 16)
+      if (seglen <= BFD_MACH_O_SEGNAME_SIZE
+         && seclen <= BFD_MACH_O_SECTNAME_SIZE)
         {
           memcpy (section->segname, name, seglen);
           section->segname[seglen] = 0;
@@ -1325,9 +1326,9 @@ bfd_mach_o_write_relocs (bfd *abfd, bfd_mach_o_section *section)
 
           v = BFD_MACH_O_SR_SCATTERED
             | (pinfo->r_pcrel ? BFD_MACH_O_SR_PCREL : 0)
-            | BFD_MACH_O_SET_SR_LENGTH(pinfo->r_length)
-            | BFD_MACH_O_SET_SR_TYPE(pinfo->r_type)
-            | BFD_MACH_O_SET_SR_ADDRESS(pinfo->r_address);
+            | BFD_MACH_O_SET_SR_LENGTH (pinfo->r_length)
+            | BFD_MACH_O_SET_SR_TYPE (pinfo->r_type)
+            | BFD_MACH_O_SET_SR_ADDRESS (pinfo->r_address);
           /* Note: scattered relocs have field in reverse order...  */
           bfd_put_32 (abfd, v, raw.r_address);
           bfd_put_32 (abfd, pinfo->r_value, raw.r_symbolnum);