summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2009-08-07 10:39:55 -0700
committerUlrich Drepper <drepper@redhat.com>2009-08-07 10:39:55 -0700
commit7bc513cf188fe50e21ad88439f294100ffa20f72 (patch)
tree11ce3167a0d66ce0dc986f0c2fb09431f4f75c57
parent3aa2588d4a533686d677eb3f6c00c202849df72b (diff)
Fix expanding STB_GNU_UNIQUE hash table.
An invalid symbol name pointer was entered into the hash table while enlarging it.
-rw-r--r--ChangeLog5
-rw-r--r--elf/dl-lookup.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index debf530fab..b0187e0a29 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-08-07 Andreas Schwab <schwab@redhat.com>
+
+ * elf/dl-lookup.c (do_lookup_x): Enter correct name into table of
+ unique symbols.
+
2009-08-05 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/x86_64/cacheinfo.c (init_cacheinfo): Properly use
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
index 56724c9b4d..c1a1366d6f 100644
--- a/elf/dl-lookup.c
+++ b/elf/dl-lookup.c
@@ -321,7 +321,7 @@ do_lookup_x (const char *undef_name, uint_fast32_t new_hash,
if (table[idx].name == NULL)
{
table[idx].hashval = hash;
- table[idx].name = strtab + sym->st_name;
+ table[idx].name = name;
if ((type_class & ELF_RTYPE_CLASS_COPY) != 0)
{
table[idx].sym = ref;