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] Clear dynstr_index when forcing symbols local


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

commit 641338d8e9b62bde9672f13f0dca2324b61e46e2
Author: Alan Modra <amodra@gmail.com>
Date:   Thu Apr 27 11:06:33 2017 +0930

    Clear dynstr_index when forcing symbols local
    
    This is really just cosmetic, but it does protect a little from
    accidentally reading a stale value.
    
    	* elflink.c (_bfd_elf_link_hash_hide_symbol): Clear dynstr_index
    	when force_local.

Diff:
---
 bfd/ChangeLog | 5 +++++
 bfd/elflink.c | 3 ++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6cda710..c870cc7 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,10 @@
 2017-04-27  Alan Modra  <amodra@gmail.com>
 
+	* elflink.c (_bfd_elf_link_hash_hide_symbol): Clear dynstr_index
+	when force_local.
+
+2017-04-27  Alan Modra  <amodra@gmail.com>
+
 	* elf32-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define.
 	(ppc_elf_select_plt_layout, ppc_elf_tls_setup): Use it.
 	(ppc_elf_adjust_dynamic_symbol, allocate_dynrelocs): Likewise.
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 73af763..59300b7 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -7295,9 +7295,10 @@ _bfd_elf_link_hash_hide_symbol (struct bfd_link_info *info,
       h->forced_local = 1;
       if (h->dynindx != -1)
 	{
-	  h->dynindx = -1;
 	  _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr,
 				  h->dynstr_index);
+	  h->dynindx = -1;
+	  h->dynstr_index = 0;
 	}
     }
 }


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