From f2b2af2c9f403ead49de8f0e01a9c149b0b420f9 Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@gmail.com>
Date: Tue, 28 Jun 2016 18:59:33 +0930
Subject: [PATCH] Invalid read in _bfd_elf_get_symbol_version_string

	PR 20304
	* objdump.c (objdump_print_symname): Don't attempt to retrieve
	version info from synthetic symbols.
---
 binutils/ChangeLog | 6 ++++++
 binutils/objdump.c | 3 ++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 4f5e2258394..cfea09b5143 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2016-06-28  Alan Modra  <amodra@gmail.com>
+
+	PR 20304
+	* objdump.c (objdump_print_symname): Don't attempt to retrieve
+	version info from synthetic symbols.
+
 2016-06-24  Alan Modra  <amodra@gmail.com>
 
 	* objcopy.c (find_section_rename): Forward declare.  Remove
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 174596e252b..bf9c5923f17 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -823,7 +823,8 @@ objdump_print_symname (bfd *abfd, struct disassemble_info *inf,
 	name = alloc;
     }
 
-  version_string = bfd_get_symbol_version_string (abfd, sym, &hidden);
+  if ((sym->flags & BSF_SYNTHETIC) == 0)
+    version_string = bfd_get_symbol_version_string (abfd, sym, &hidden);
 
   if (bfd_is_und_section (bfd_get_section (sym)))
     hidden = TRUE;
-- 
GitLab