Don't crash in trace mode when dependencies are missing

This commit is contained in:
Andreas Schwab 2010-04-14 22:16:06 -07:00 committed by Ulrich Drepper
parent 2645b8e5cc
commit 18a26b301b
2 changed files with 13 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2010-04-14 Andreas Schwab <schwab@redhat.com>
* elf/dl-version.c (_dl_check_map_versions): Avoid index overflow
when dependencies are missing.
2010-04-14 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/x86_64/multiarch/memcmp-sse4.S: Optimized for unaligned

View File

@ -322,10 +322,14 @@ _dl_check_map_versions (struct link_map *map, int verbose, int trace_mode)
while (1)
{
ElfW(Half) ndx = aux->vna_other & 0x7fff;
map->l_versions[ndx].hash = aux->vna_hash;
map->l_versions[ndx].hidden = aux->vna_other & 0x8000;
map->l_versions[ndx].name = &strtab[aux->vna_name];
map->l_versions[ndx].filename = &strtab[ent->vn_file];
/* In trace mode, dependencies may be missing. */
if (__builtin_expect (ndx < map->l_nversions, 1))
{
map->l_versions[ndx].hash = aux->vna_hash;
map->l_versions[ndx].hidden = aux->vna_other & 0x8000;
map->l_versions[ndx].name = &strtab[aux->vna_name];
map->l_versions[ndx].filename = &strtab[ent->vn_file];
}
if (aux->vna_next == 0)
/* No more symbols. */