From fca6ae69c41882f5adfba05da7d932b7c8bc2153 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 20 May 2015 07:55:45 -0700 Subject: Skip extra relocations in .rel.plt/.rela.plt 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. --- bfd/elf64-x86-64.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'bfd/elf64-x86-64.c') diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 01df230..4428f97 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -5649,6 +5649,11 @@ bad_return: 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); -- cgit v1.1