summaryrefslogtreecommitdiff
path: root/elf/dl-lookup.c
diff options
context:
space:
mode:
Diffstat (limited to 'elf/dl-lookup.c')
-rw-r--r--elf/dl-lookup.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
index c51724026e..6da708109e 100644
--- a/elf/dl-lookup.c
+++ b/elf/dl-lookup.c
@@ -155,11 +155,12 @@ do_lookup (const char *undef_name, unsigned long int hash,
else
{
/* We can match the version information or use the
- default one. */
+ default one if it is not hidden. */
ElfW(Half) ndx = verstab[symidx] & 0x7fff;
if ((map->l_versions[ndx].hash != version->hash
|| strcmp (map->l_versions[ndx].name, version->name))
- && (version->hidden || map->l_versions[ndx].hash))
+ && (version->hidden || map->l_versions[ndx].hash
+ || (verstab[symidx] & 0x8000)))
/* It's not the version we want. */
continue;
}