Skip to content

Commit

Permalink
Don't crash in trace mode when dependencies are missing
Browse files Browse the repository at this point in the history
  • Loading branch information
Andreas Schwab authored and Ulrich Drepper committed Apr 15, 2010
1 parent 2645b8e commit 18a26b3
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
5 changes: 5 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -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
Expand Down
12 changes: 8 additions & 4 deletions elf/dl-version.c
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand Down

0 comments on commit 18a26b3

Please sign in to comment.