From: H.J. Lu Date: Mon, 18 Sep 2017 20:05:25 +0000 (-0700) Subject: Check error return from bfd_canonicalize_dynamic_reloc X-Git-Tag: binutils-2_29_1.1~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e6ff33ca50c1180725dde11c84ee93fcdb4235ef;p=thirdparty%2Fbinutils-gdb.git Check error return from bfd_canonicalize_dynamic_reloc Since bfd_canonicalize_dynamic_reloc returns -1 on error, check it in elf_i386_get_synthetic_symtab and elf_x86_64_get_synthetic_symtab. PR ld/22148 * elf32-i386.c (elf_i386_get_synthetic_symtab): Check error return from bfd_canonicalize_dynamic_reloc. * elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise. (cherry picked from commit 94670f6cf11fc29cc6db6814b38c4305d9bcac96) --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c302aadf44e..d08844e5695 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2017-09-18 H.J. Lu + + PR ld/22148 + * elf32-i386.c (elf_i386_get_synthetic_symtab): Check error + return from bfd_canonicalize_dynamic_reloc. + * elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise. + 2017-09-15 Nick Clifton 2.29.1 Release diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index 00a63979130..5c1c3ff7907 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -6342,6 +6342,8 @@ elf_i386_get_synthetic_symtab (bfd *abfd, dynrelcount = bfd_canonicalize_dynamic_reloc (abfd, dynrelbuf, dynsyms); + if (dynrelcount < 0) + return -1; /* Sort the relocs by address. */ qsort (dynrelbuf, dynrelcount, sizeof (arelent *), compare_relocs); diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 6bc1898a966..80dd791d25c 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -6717,6 +6717,8 @@ elf_x86_64_get_synthetic_symtab (bfd *abfd, dynrelcount = bfd_canonicalize_dynamic_reloc (abfd, dynrelbuf, dynsyms); + if (dynrelcount < 0) + return -1; /* Sort the relocs by address. */ qsort (dynrelbuf, dynrelcount, sizeof (arelent *), compare_relocs);