2012-01-19 Jeff Law * elf/dl-deps.c (_dl_map_object_deps): Fix cycle detection. * elf/dl-fini.c (_dl_sort_fini): Likewise diff --git a/elf/dl-deps.c b/elf/dl-deps.c index 565a339..a461475 100644 --- a/elf/dl-deps.c +++ b/elf/dl-deps.c @@ -659,7 +659,7 @@ Filters not supported with LD_TRACE_PRELINKING")); (k - i) * sizeof (l_initfini[0])); l_initfini[k] = thisp; - if (seen[i + 1] > 1) + if (seen[i + 1] > nlist - i - 1) { ++i; goto next_clear; diff --git a/elf/dl-fini.c b/elf/dl-fini.c index 9fd913e..1f8ce69 100644 --- a/elf/dl-fini.c +++ b/elf/dl-fini.c @@ -79,7 +79,7 @@ _dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, Lmid_t ns) used[k] = here_used; } - if (seen[i + 1] > 1) + if (seen[i + 1] > nmaps - i - 1) { ++i; goto next_clear;