This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb/binutils-2_29-branch] Check error return from bfd_canonicalize_dynamic_reloc


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e6ff33ca50c1180725dde11c84ee93fcdb4235ef

commit e6ff33ca50c1180725dde11c84ee93fcdb4235ef
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Sep 18 13:05:25 2017 -0700

    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:
---
 bfd/ChangeLog      | 7 +++++++
 bfd/elf32-i386.c   | 2 ++
 bfd/elf64-x86-64.c | 2 ++
 3 files changed, 11 insertions(+)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c302aad..d08844e 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2017-09-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+	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  <nickc@redhat.com>
 
 	2.29.1 Release
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index 00a6397..5c1c3ff 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 6bc1898..80dd791 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);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]