OSDN Git Service

bfd/
authorRichard Sandiford <rsandifo@nildram.co.uk>
Wed, 1 Apr 2009 19:05:53 +0000 (19:05 +0000)
committerRichard Sandiford <rsandifo@nildram.co.uk>
Wed, 1 Apr 2009 19:05:53 +0000 (19:05 +0000)
* xcofflink.c (bfd_link_input_bfd): Fix buffer overrun.

bfd/ChangeLog
bfd/xcofflink.c

index e0ed3a6..cbfad17 100644 (file)
@@ -1,3 +1,7 @@
+2009-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * xcofflink.c (bfd_link_input_bfd): Fix buffer overrun.
+
 2009-04-01  Christophe Lyon  <christophe.lyon@st.com>
 
        * elf32-arm.c (group_sections): Rewrite loops for better
index 3752f7c..ac0f529 100644 (file)
@@ -4268,14 +4268,13 @@ xcoff_link_input_bfd (struct xcoff_final_link_info *finfo,
                      bfd_coff_swap_lineno_in (input_bfd, linp, &lin);
                      lin.l_addr.l_symndx = *indexp;
                      bfd_coff_swap_lineno_out (output_bfd, &lin, linp);
-                     linp += linesz;
 
                      /* Copy the other entries, adjusting their addresses.  */
                      linpend = linp + *lineno_counts * linesz;
                      offset = (o->output_section->vma
                                + o->output_offset
                                - o->vma);
-                     for (; linp < linpend; linp += linesz)
+                     for (linp += linesz; linp < linpend; linp += linesz)
                        {
                          bfd_coff_swap_lineno_in (input_bfd, linp, &lin);
                          lin.l_addr.l_paddr += offset;