Extra relocations may be added to the .rel.plt/.rela.plt section, which
are unrelated to PLT. We should skip them when retrieving PLT entry
symbol values.
PR binutils/18437
* elf32-i386.c (elf_i386_get_plt_sym_val): Skip extra relocations
in .rel.plt/.rela.plt.
* elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
+2015-05-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/18437
+ * elf32-i386.c (elf_i386_get_plt_sym_val): Skip extra relocations
+ in .rel.plt/.rela.plt.
+ * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
+
2015-05-19 Jiong Wang <jiong.wang@arm.com>
* elfnn-aarch64.c (aarch64_tls_transition_without_check): Sort
abort ();
plt_sym_val[reloc_index] = plt->vma + plt_offset;
plt_offset += bed->plt->plt_entry_size;
+
+ /* PR binutils/18437: Skip extra relocations in the .rel.plt
+ section. */
+ if (plt_offset >= plt->size)
+ break;
}
free (plt_contents);
else
plt_sym_val[reloc_index] = plt->vma + plt_offset;
plt_offset += bed->plt_entry_size;
+
+ /* PR binutils/18437: Skip extra relocations in the .rela.plt
+ section. */
+ if (plt_offset >= plt->size)
+ break;
}
free (plt_contents);