[PATCH] elf: Check bfd_target_elf_flavour on input first

H.J. Lu hjl.tools@gmail.com
Tue Sep 15 20:07:03 GMT 2020


Check bfd_target_elf_flavour on input first in ldelf_after_open before
checking elf_tdata.

	* ldelf.c (ldelf_after_open): Check bfd_target_elf_flavour first.
---
 ld/ChangeLog | 4 ++++
 ld/ldelf.c   | 3 ++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/ld/ChangeLog b/ld/ChangeLog
index c65a188736..01587d8621 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2020-09-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* ldelf.c (ldelf_after_open): Check bfd_target_elf_flavour first.
+
 2020-09-15  Hans-Peter Nilsson  <hp@axis.com>
 
 	PR ld/26589
diff --git a/ld/ldelf.c b/ld/ldelf.c
index 75c6c015ae..c37358f05e 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -1043,7 +1043,8 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
   /* Do not allow executable files to be used as inputs to the link.  */
   for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
     {
-      if (!bfd_input_just_syms (abfd)
+      if (abfd->xvec->flavour == bfd_target_elf_flavour
+	  && !bfd_input_just_syms (abfd)
 	  && elf_tdata (abfd) != NULL
 	  && elf_tdata (abfd)->elf_header != NULL
 	  /* FIXME: Maybe check for other non-supportable types as well ?  */
-- 
2.26.2



More information about the Binutils mailing list