[committed] Fix buffer overrun in xcoff_link_input_bfd

Richard Sandiford rdsandiford@googlemail.com
Wed Apr 1 19:07:00 GMT 2009


Noticed while using valgrind.  Tested on powerpc-ibm-aix6.1 and applied.

Richard


bfd/
	* xcofflink.c (bfd_link_input_bfd): Fix buffer overrun.

Index: bfd/xcofflink.c
===================================================================
--- bfd/xcofflink.c	2009-04-01 19:08:36.000000000 +0100
+++ bfd/xcofflink.c	2009-04-01 19:08:42.000000000 +0100
@@ -4268,14 +4268,13 @@ #define N_BTSHFT n_btshft
 		      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;



More information about the Binutils mailing list