MIPS: Fix a .pdr section linker buffer overrun
authorMaciej W. Rozycki <macro@codesourcery.com>
Tue, 5 Aug 2014 15:17:15 +0000 (16:17 +0100)
committerMaciej W. Rozycki <macro@codesourcery.com>
Tue, 5 Aug 2014 15:19:09 +0000 (16:19 +0100)
* elfxx-mips.c (_bfd_mips_elf_discard_info): Set section's
rawsize if changing size.

bfd/ChangeLog
bfd/elfxx-mips.c

index 6085db8..679edd4 100644 (file)
@@ -1,3 +1,8 @@
+2014-08-05  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       * elfxx-mips.c (_bfd_mips_elf_discard_info): Set section's
+       rawsize if changing size.
+
 2014-08-05  Alan Modra  <amodra@gmail.com>
 
        PR ld/17226
index a72ccc3..ee0204d 100644 (file)
@@ -12380,6 +12380,8 @@ _bfd_mips_elf_discard_info (bfd *abfd, struct elf_reloc_cookie *cookie,
   if (skip != 0)
     {
       mips_elf_section_data (o)->u.tdata = tdata;
+      if (o->rawsize == 0)
+       o->rawsize = o->size;
       o->size -= skip * PDR_SIZE;
       ret = TRUE;
     }