diff options
Diffstat (limited to 'elf/dl-lookup.c')
-rw-r--r-- | elf/dl-lookup.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c index c517240..6da7081 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; } |