mirror of
git://sourceware.org/git/glibc.git
synced 2025-04-06 14:10:30 +08:00
Don't crash in trace mode when dependencies are missing
This commit is contained in:
parent
2645b8e5cc
commit
18a26b301b
@ -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
|
||||
|
@ -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. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user