From 2f6164e233683930e3ef2313efcfc456114fd4da Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 20 Feb 1999 22:05:45 +0000 Subject: Update. * elf/dl-lookup.c (_dl_lookup_symbol_skip): Before first do_lookup call test whether there is any scope left. (_dl_lookup_versioned_symbol_skip): Likewise. --- elf/dl-lookup.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'elf/dl-lookup.c') diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c index dba9243d21..9a691b72b0 100644 --- a/elf/dl-lookup.c +++ b/elf/dl-lookup.c @@ -142,8 +142,9 @@ _dl_lookup_symbol_skip (const char *undef_name, const ElfW(Sym) **ref, for (i = 0; (*scope)->r_duplist[i] != skip_map; ++i) assert (i < (*scope)->r_nduplist); - if (! do_lookup (undef_name, hash, *ref, ¤t_value, - *scope, i, reference_name, skip_map, 0)) + if (i >= (*scope)->r_nlist + || ! do_lookup (undef_name, hash, *ref, ¤t_value, + *scope, i, reference_name, skip_map, 0)) while (*++scope) if (do_lookup (undef_name, hash, *ref, ¤t_value, *scope, 0, reference_name, skip_map, 0)) @@ -263,8 +264,9 @@ _dl_lookup_versioned_symbol_skip (const char *undef_name, for (i = 0; (*scope)->r_duplist[i] != skip_map; ++i) assert (i < (*scope)->r_nduplist); - if (! do_lookup_versioned (undef_name, hash, *ref, ¤t_value, - *scope, i, reference_name, version, skip_map, 0)) + if (i >= (*scope)->r_nlist + || ! do_lookup_versioned (undef_name, hash, *ref, ¤t_value, *scope, + i, reference_name, version, skip_map, 0)) while (*++scope) if (do_lookup_versioned (undef_name, hash, *ref, ¤t_value, *scope, 0, reference_name, version, skip_map, 0)) -- cgit v1.2.3